首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从hibernate-4迁移到hibernate-5时,java.util.Date格式输出发生变化

从hibernate-4迁移到hibernate-5时,java.util.Date格式输出发生变化
EN

Stack Overflow用户
提问于 2018-02-03 07:36:42
回答 1查看 223关注 0票数 0

我目前正在尝试更新我们当前的一些库,我遇到了一个阻塞问题。这是一个遗留应用程序,下面是基本设置:

代码语言:javascript
复制
Java 8
Tomcat 7
Mysql 5.5.27-28.1-log Percona Server
Spring 4.2.4.RELEASE

相关的Hibernate版本如下:

代码语言:javascript
复制
55:HIBERNATE_VERSION = "4.3.11.Final"
236:                "org.hibernate:hibernate-core:jar:#{HIBERNATE_VERSION}",
239:                "org.hibernate:hibernate-envers:jar:#{HIBERNATE_VERSION}",
241:                "org.hibernate:hibernate-entitymanager:jar:#{HIBERNATE_VERSION}",

更新后的版本为:

HIBERNATE_VERSION = "5.2.12.Final"

我将省去细节,但还有相当多的其他依赖项。我逐渐消除了所有其他更改(包括相关的spring更新),但上面列出的库是唯一更改的3个库。

现在,由于日期格式已更改,其中一个前端客户端出现阻塞。

在hibernate-4下,它看起来像:

createdDate:"2014-09-15",

通过以上更改,它现在看起来如下所示:

createdDate: 1410753600000,

类注释如下所示:

代码语言:javascript
复制
@Temporal(TemporalType.DATE)
@Column(columnDefinition="datetime")
private Date createdDate;

表模式在mysql上,并按如下方式列出:

| createdDate | datetime | YES | MUL | NULL |

其中“java.util.Date”是日期。是的,我知道java.util.Date很可怕。我也知道@Temporal落后于java8和新特性。我们使用了jodatime,并将寻求在新的J8约定上进行标准化,但这是一个旧的应用程序,这是一个更旧的数据库上的中心表。

我尝试了许多解决方案,包括:

通过检查更改日志,我找不到任何可以解释这种特定更改的东西,更不用说任何原因默认行为会发生如此剧烈的变化。我知道更大的迁移可能会有所帮助,但我真的只是希望使用旧的默认行为,这样我就可以理顺其余的升级,而不会让它们被主要的代码/数据库更改所包裹。

这里有什么想法吗?我以前升级过hibernate很多次,从来没有遇到过这样的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-21 06:16:38

问题仍然是@Temporal在Hibernate-5和JPA2.2之间没有得到尊重,所以映射消失了。我使用了一个假DTO来返回数据,并在该特定字段上强制执行了格式化程序,这似乎解决了这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48592371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档