我的实体类:
@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/