2014-10-12 110 views
0

我正在使用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的'引擎'

回答

0

除了急切和懒惰初始化的技术方面,所提到的职位选择也取决于你的需求,这样的时间戳必须持有什么样的信息,即

  • 实体实例的初始化时间(使用属性)
  • 相关的一些外部对象(使用构造函数或setter时间值)

从代码片段中,我可以看到dataCreare在创建对象期间被初始化。如果是这样,为什么你还需要二传手?两次重新初始化相同的属性是不必要的,不是吗?