我正在维护几年前编写的代码,使用 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/