hibernate - 如何强制 JPARepository 以 yyyy-MM-dd HH :mm:ss. 000 格式显示时间戳

标签 hibernate datetime spring-data-jpa hibernate-annotations

我正在维护几年前编写的代码,使用 JPARepository 访问数据库。数据库中的creationDate列被定义为日期时间。

旧版本的代码将从creationDate中提取值并将其显示为“creationDate”:“2015-03-27T14:44:05.897+0000”。

我必须修改数据库中的几个表。在此过程中,我将 Spring Boot 升级到版本 1.4.3,这也引入了较新版本的 Hibernate。

现在,当我运行代码(没有更改任何日期)时,JSON 现在将该列显示为 "creationDate": 1427467445897 。这会破坏调用我的网络服务的代码。

我的代码有:

@Column(name="CreationDate", nullable=true) 
private java.sql.Timestamp creationDate;

而且getter函数上没有注释。我必须做什么才能使 JSON 日期再次显示为“2015-03-27T14:44:05.897+0000”?

最佳答案

我怀疑这与 spring-data 无关,而是与 Jackson 有关,因为存储库不显示任何内容。

@Column(name="CreationDate", nullable=true)
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ")
private java.sql.Timestamp creationDate;

here以获得正确的模式。

关于hibernate - 如何强制 JPARepository 以 yyyy-MM-dd HH :mm:ss. 000 格式显示时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43857905/

相关文章:

java - Spring Boot JPA不会使用save方法更新记录

java - Spring Boot JPA 在@Transactional 上不需要 .save() 吗?

java - 将 hibernate 实体转换为 JSON : oblectId instead of whole object

mysql - 使用 Hibernate 或 SQL 比较两个枚举集合

java - 使用 HSQL 进行 Hibernate - 未使用 hbm2ddl 创建表

c# - 为 RESTful 服务格式化 DateTime 的最佳方式?

java - Spring Data JPA 规范中三表连接中允许空集

Hibernate HQL 映射异常列名

r - 将时间输入打印为 r 中的单词

java - jsp页面显示服务器时间