我需要使用方法 1 尝试使用 createdDate 和 updatedDate 更新 postgres 数据库,但它正在插入空值。当我阅读时,@prepersist 注释似乎不适用于会话。
所以我决定使用方法 2:Hibernate @CreationTimeStamp Annotation,我添加了 hibernate-annotations maven 依赖项,但是 @CreationTimeStamp 没有解决并给出编译错误。
有人可以告诉我如何解决这个问题吗?
方法 1 使用 @Entity 和 @Table 注释的实体类
public class Status{
@Id
@Column(name = "run_id")
private int run_id;
@Column(name = "status")
private String status;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created_date" , updatable=false)
private Date created;
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "updated_date" , insertable=false)
private Date updated;
@PrePersist
protected void onCreate() {
created = new Date();
}
@PreUpdate
protected void onUpdate() {
updated = new Date();
}
//Getters and setters here
}
实现类是
sessionFactory.getCurrentSession().save(status);
方法 2 使用 @CreationTimeStamp 和 @updatedTimeStamp。但是maven依赖
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-annotations -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.5.0-Final</version>
</dependency>
不将这些注释添加到类路径