我正在尝试使用JPA(具体来说是Eclipselink)。下面的实体应该有一个时间戳,以反映该实体上次更新的时间。
有哪些策略可以使JPA在每次更改此实体时自动更新该时间戳?
如果我还想要一个“创建”时间戳,只在首次持久化实体时设置,永远不允许再次更改,我该怎么做?
@Entity
public class Item implements Serializable {
private static final long serialVersionUID = 1L;
private Integer id;
private String note;
public Item () {
}
@Id
@GeneratedValue(strategy=SEQUENCE)
@Column(unique=true, nullable=false)
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
@Column(length=255)
@Column(nullable=false)
public String getNote() {
return this.note;
}
public void setNote(String note) {
this.note = note;
}
@Column(nullable=false)
public Timestamp getUpdated() {
return this.updated;
}
public void setUpdated(Timestamp updated) {
this.updated = updated;
}
}
创建表ts( last_updated_ts TIMESTAMP, created_ts TIMESTAMP, name varchar(5) );
insert into ts(last_updated_ts,created_ts,name)value(null,null,'test');无论客户端如何访问数据库,肯定触发器或注释更好。 - surajz