JPA中的日期默认初始化

时间:2014-10-12 12:18:38

标签: mysql date jpa initialization

我正在使用JPA,我想用当前时间戳初始化Date字段(如果该字段未明确设置为特定值) 我不想在数据库层执行此操作,因为我使用的是MySQL,该字段是DATETIME,我们使用MySQL 5.6.5之前的版本 这是一段代码:

@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'引擎'

1 个答案:

答案 0 :(得分:0)

除了在推文中明确描述的急切和懒惰初始化的技术方面,选择还取决于您的要求以及时间戳必须包含的信息,即

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

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