java - 在 Spring Boot 中通过 JPA 正确利用纪元秒

标签 java mysql spring hibernate jpa

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

例如,我有一个表,其中有一个Created列和一个Modified列。显而易见,我需要为添加的每个新条目为 Created 列提供纪元秒,并且我需要每次更新 Modified 列现有条目已更改。

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

最佳答案

您可以简单地将毫秒存储在 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();
    }

}

关于java - 在 Spring Boot 中通过 JPA 正确利用纪元秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27329482/

相关文章:

mysql - 表分区的最佳实践 - mysql 5.5

spring - Tomcat + OSGi : No Catalina Service found

java - 如何在Tomcat上实现Java Socket通信

java - 使用 NodeList 和 DocumentBuilder 解析 Xml

java - JFrame 上的 Enter 键

java - 在 Java 中只处理小时和分钟的最佳方法

java - 通过c3p0在mysql中查询超时

mysql - 根据 SQL 和 hibernate 映射中另一个表中引用行到我的表的 count() 设置列的值

java - 启动时未找到 Spring MVC 资源

java - Spring如何在spring上下文中使用非托管外部库类