Java 在Spring Boot中正确使用JPA的Epoch秒
我想把数据库中的所有日期都存储为历元秒,以消除时区模糊性。我正在使用SpringBoot的一个启动器(JPA的数据)提供的接口来持久化我对存储秒数的实体所做的更改。然而,我在弄清楚如何正确更新所有内容时遇到了一点困难 例如,我有一个表,它有一个Java 在Spring Boot中正确使用JPA的Epoch秒,java,mysql,spring,hibernate,jpa,Java,Mysql,Spring,Hibernate,Jpa,我想把数据库中的所有日期都存储为历元秒,以消除时区模糊性。我正在使用SpringBoot的一个启动器(JPA的数据)提供的接口来持久化我对存储秒数的实体所做的更改。然而,我在弄清楚如何正确更新所有内容时遇到了一点困难 例如,我有一个表,它有一个创建的列和一个修改的列。很明显,我需要为添加的每个新条目为创建的列提供历元秒,并且我需要在现有条目每次更改时更新修改的列 我可以在我的表设计中结合使用MySQL默认值和注释以及我的JPA实体来实现这一点吗?或者我是否需要实现一个存储库来为我进行创建/更新?
创建的列和一个修改的列。很明显,我需要为添加的每个新条目为创建的
列提供历元秒,并且我需要在现有条目每次更改时更新修改的
列
我可以在我的表设计中结合使用MySQL默认值和注释以及我的JPA实体来实现这一点吗?或者我是否需要实现一个存储库来为我进行创建/更新?您可以简单地将毫秒存储在数字列中,同时让OOP端对日期对象进行操作:
public class MyEntity {
@Column
private long createdOn;
public Date getCreatedOn() {
return new Date(createdOn);
}
public void setCreatedOn(Date createdOn) {
this.createdOn = createdOn.getTime();
}
}
在getter/setter函数中,将所有内容都存储为历元秒,并根据需要转换为毫秒或从毫秒转换为毫秒,这有意义吗?使用毫秒将为您提供最佳的日期/时间精度。您也可以在存储时使用秒,但随后您失去了毫秒精度,只有秒精度。这很有意义。我会在我的纪元秒内完成。