在Spring Boot中正确使用JPA的Epoch Seconds

时间:2014-12-06 07:38:30

标签: java mysql spring hibernate jpa

我想将数据库中的所有日期存储为纪元秒,以消除时区歧义。我正在使用通过Spring Boot的一个启动程序(Data for JPA)提供的JpaRepository接口来持久保存我对将存储纪元秒的实体所做的更改。但是,我在确定如何正确更新所有内容方面遇到了一些麻烦。

例如,我有一个包含Created列和Modified列的表。很明显,我需要为每个添加的新条目提供Created列的纪元秒,并且每次更改现有条目时都需要更新Modified列。

我可以使用表格设计中的MySQL默认值和我的JPA实体的注释来完成此操作,还是需要实现一个Repository来处理这个创建/更新?

1 个答案:

答案 0 :(得分:1)

您可以简单地将millis存储在NUMERIC列中,同时让OOP端对Date对象进行操作:

public class MyEntity {

    @Column
    private long createdOn;

    public Date getCreatedOn() {
        return new Date(createdOn);
    }

    public void setCreatedOn(Date createdOn) {
        this.createdOn = createdOn.getTime();
    }

}