![](/img/trans.png)
[英]Migrating to hibernate 5.1.16 from hibernate 4.3 have QuerySyntaxException
[英]java.util.Date format output changes when migrating from hibernate-4 to hibernate-5
我目前正在嘗試更新一些當前的庫,但是遇到了阻塞問題。 這是舊版應用程序,這是基本設置:
Java 8
Tomcat 7
Mysql 5.5.27-28.1-log Percona Server
Spring 4.2.4.RELEASE
相關的Hibernate版本在這里:
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”,
經過上述更改,現在看起來像這樣:
創建日期:1410753600000,
類注釋看起來像這樣:
@Temporal(TemporalType.DATE)
@Column(columnDefinition="datetime")
private Date createdDate;
表模式在mysql上,其列出如下:
| createdDate | 日期時間| 是的 MUL | NULL | |
其中“日期”是java.util.Date。 是的,我知道java.util.Date太可怕了。 我也知道@Temporal落后於Java 8和新功能。 我們使用jodatime並希望對新的J8約定進行標准化,但這是一個舊應用程序,這是一個甚至更老的數據庫的中央表。
我嘗試了許多解決方案,包括:
通過檢查更改日志,我找不到任何可以解釋此特定更改的內容,更不用說任何默認行為會發生如此巨大更改的原因了。 我知道較大的遷移可以提供幫助,但是我實際上只是在尋找使用舊的默認行為的方法,這樣我就可以理清其余的升級,而不必將它們打包在主要的代碼/數據庫更改中。
這里有什么想法嗎? 我之前已經多次升級了休眠模式,卻從未遇到過像這樣的問題。
問題仍然是@Temporal
在Hibernate-5和JPA 2.2之間@Temporal
,因此映射消失了。 我有一個偽造的DTO返回數據,並在該特定字段上強制使用了格式化程序,這似乎已經解決了該問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.