Todas mis tablas db deben tener un campo endTime que de forma predeterminada debe ser END_OF_TIME o algo así. No estoy contento con la limitación 2038, así que quiero que endTime sea del tipo DATETIME en mysql.¿Cómo puedo mapear una fecha de Java a DATETIME en mysql (de forma predeterminada es TIMESTAMP) con anotaciones de Hibernate
códigoMi Java es:
@MappedSuperclass
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class BaseDBEntity {
@Id
@Column(length=36)
public String id;
@Temporal(TemporalType.TIMESTAMP)
public Date startTime;
@Temporal(TemporalType.TIMESTAMP)
public Date endTime;
public BaseDBEntity() {
}
}
que puede evitar mediante la creación de la tabla de forma manual con un campo endTime de tipo DATETIME, y que mapear la entidad endTime a esa columna, sin embargo me gustaría Hibernate para generar las tablas de forma automática, ¿cómo puedo hacer eso?
que funciona! ¿Por qué todavía es necesario utilizar la anotación @Temporal? Parece que no tiene ningún efecto adicional. – user1023622
Sí lo es. La anotación @Temporal le dice a Hibernate si debe usar java.sql.Date o java.sql.Timestamp para almacenar la fecha leída de la base de datos. Ambos amplían la clase java.util.Date, pero java.sql.Date no contiene ninguna información de tiempo: solo la fecha. –
+1 por "por favor, haga que sus atributos sean privados" – scravy