如何使用Hibernate注释将Java日期映射到mysql中的DATETIME(默认情况下为TIMESTAMP)
我的所有数据库表都应该有一个endTime字段,默认情况下应该是END_OF_TIME或类似的东西。 我对2038的限制感到不满,所以我希望endTime在mysql中的类型为DATETIME。
我的Java代码是:
@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() { } }
我可以通过使用DATETIME类型的endTime字段手动创建表,然后将实体endTime映射到该列,但是我希望Hibernate自动生成表 – 我该怎么做?
使用@Column
批注的columnDefinition
属性:
@Column(name = "startTime", columnDefinition="DATETIME") @Temporal(TemporalType.TIMESTAMP) private Date startTime;
请将您的属性设为私有。
- 如何从java代码为我的jpa实体创建一个ddl?
- Spring,@ Transactal和Hibernate Lazy Loading
- 我们如何使用Hibernate和JPA调用存储过程?
- EntityManager无法使用persist将元素保存到数据库
- 如何在Spring Data中按示例查询在两个日期之间添加限制范围
- Hibernate命名查询顺序依据参数
- 如何强制Hibernate返回空值而不是null?
- 使用Element Collections时如何在JPA中进行批量删除?
- java.lang.NoSuchMethodError:javax.persistence.OneToMany.orphanRemoval()