com.j256.ormlite.field.types.DateLongType Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of ormlite-core Show documentation
Show all versions of ormlite-core Show documentation
Lightweight Object Relational Model (ORM) for persisting objects to SQL databases.
package com.j256.ormlite.field.types;
import java.sql.SQLException;
import java.util.Date;
import com.j256.ormlite.field.FieldType;
import com.j256.ormlite.field.SqlType;
import com.j256.ormlite.misc.SqlExceptionUtil;
import com.j256.ormlite.support.DatabaseResults;
/**
* Persists the {@link java.util.Date} Java class as long milliseconds since epoch.
*
*
* NOTE: This is not the same as the {@link java.sql.Date} class.
*
*
* @author graywatson
*/
public class DateLongType extends BaseDateType {
private static final DateLongType singleTon = new DateLongType();
public static DateLongType getSingleton() {
return singleTon;
}
private DateLongType() {
super(SqlType.LONG);
}
/**
* Here for others to subclass.
*/
protected DateLongType(SqlType sqlType, Class[] classes) {
super(sqlType, classes);
}
@Override
public Object parseDefaultString(FieldType fieldType, String defaultStr) throws SQLException {
try {
return Long.parseLong(defaultStr);
} catch (NumberFormatException e) {
throw SqlExceptionUtil.create("Problems with field " + fieldType + " parsing default date-long value: "
+ defaultStr, e);
}
}
@Override
public Object resultToSqlArg(FieldType fieldType, DatabaseResults results, int columnPos) throws SQLException {
return results.getLong(columnPos);
}
@Override
public Object sqlArgToJava(FieldType fieldType, Object sqlArg, int columnPos) {
return new Date((Long) sqlArg);
}
@Override
public Object javaToSqlArg(FieldType fieldType, Object obj) {
Date date = (Date) obj;
return (Long) date.getTime();
}
@Override
public boolean isEscapedValue() {
return false;
}
@Override
public Class getPrimaryClass() {
return Date.class;
}
}