hibernate - 如何自动生成创建或修改的时间戳字段?

标签 hibernate orm jpa

我的实体类:

@Entity
@Table(name = "user")
public class User implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @SequenceGenerator(name = "USER_ID_GENERATOR", sequenceName = "USER_SEQ")
    @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "USER_ID_GENERATOR")
    @Column(name = "user_id")
    private long userId;


    @Temporal(TemporalType.DATE)
    private Date created;

    @Temporal(TemporalType.DATE)
    private Date modified;

    //setters and getters...
}

我想在创建或修改对象时将CREATED和MODIFIED字段自动互补。 CREATED和MODIFIED字段应为TIMESTAMP类型。

我该如何实现?

最佳答案

您只要在创建实例时就可以创建new Date(),然后在实体得到更新时就更新updated字段:

private Date created = new Date();
private Date updated = new Date();

@PreUpdate
public void setLastUpdate() {  this.updated = new Date(); }

不要为这些方法中的任何一种提供 setter ,仅提供 getter 。

关于hibernate - 如何自动生成创建或修改的时间戳字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5257709/

相关文章:

Hibernate 不执行查询

java - 没有主键的表的 Hibernate 映射

oracle - Grails中与众不同,oracle和CLOB错误

java - 如何在 Hibernate Where 子句中使用 CASE WHEN

python - 小便 orm : bulk insert using a subquery but is based on python-side-data

java - 如何放置正确的 DBFLow 注释

mysql - 从表中获取用户的分组记录

java - Hibernate JPA - StackOverflowException - JPQL

java - Spring Data JPA 使用 EclipseLink 作为 JPA 提供者 : possible bug in EclipseLink?

jpa - 将 Spring Data 查询构建器与 Spring Data JPA 规范相结合?