Além disso, veja como criar uma implementação personalizada do tipo de hibernação. Algo na linha de (psuedocódigo, pois não tenho um ambiente útil para torná-lo à prova de balas):
public class CalendarBigIntType extends org.hibernate.type.CalendarType {
public Object get(ResultSet rs, String name) {
return cal = new GregorianCalendar(rs.getLong(name));
}
public void set(PreparedStatement stmt, Object value, int index) {
stmt.setParameter(index, ((Calendar) value).getTime());
}
}
Em seguida, você precisará mapear seu novo objeto usando um mapeamento de TypeDef e Type de hibernação. Se você estiver usando anotações do Hibernate, será na linha de:
@TypeDef (name="bigIntCalendar", typeClass=CalendarBigIntType.class)
@Entity
public class MyEntity {
@Type(type="bigIntCalendar")
private Calendar myDate;
}