日期默认初始化在JPA
问题描述:
我正在使用JPA,我想用当前时间戳初始化日期字段(如果该字段未明确设置为特定值) 我不想在数据库中执行此操作层,因为我使用的MySQL,该字段为DATETIME,和我们使用之前的版本MySQL 5.6.5 下面的代码片段:日期默认初始化在JPA
@Entity
@Table(name = "comentariu")
public class Comentariu implements Serializable{
...
@Column(name = "dataCreare")
@Temporal(TemporalType.TIMESTAMP)
private Date dataCreare = new Date();
...
public Date getDataCreare() {
return dataCreare;
}
public void setDataCreare(Date dataCreare) {
this.dataCreare = dataCreare;
}
}
初始化这种方式鼓励here
确实看到任何与此问题? 我很担心,因为当我在初始化语句上设置一个断点时,我注意到代码被执行了好几次,可能是因为JPA的'引擎'
答
除了急切和懒惰初始化的技术方面,所提到的职位选择也取决于你的需求,这样的时间戳必须持有什么样的信息,即
- 实体实例的初始化时间(使用属性)
- 相关的一些外部对象(使用构造函数或setter时间值)
从代码片段中,我可以看到dataCreare
在创建对象期间被初始化。如果是这样,为什么你还需要二传手?两次重新初始化相同的属性是不必要的,不是吗?