在grails 3應用程序中,我看到新的java.time類被持久化到數據庫。動態查詢和創建標準的作品。但是,我想知道是否有更好的方法來將這些時間數據存儲到數據庫中。當我看數據庫時,我看到一些二進制數據,它似乎只是序列化時間對象。Grails 3和Java 8時間支持
是否有與joda-time-plugin類似的插件,或者有什麼方法可以爲java.time類配置數據庫映射嗎?
在grails 3應用程序中,我看到新的java.time類被持久化到數據庫。動態查詢和創建標準的作品。但是,我想知道是否有更好的方法來將這些時間數據存儲到數據庫中。當我看數據庫時,我看到一些二進制數據,它似乎只是序列化時間對象。Grails 3和Java 8時間支持
是否有與joda-time-plugin類似的插件,或者有什麼方法可以爲java.time類配置數據庫映射嗎?
編輯:Grails的3.1.1已經冬眠5所以這不是一個問題了...
Grails的
我終於找到了解決辦法。首先,hibernate 5實現了java 8的持久性(https://hibernate.atlassian.net/browse/HHH-8844)。但是,grails 3使用hibernate 4,我還沒有發現任何計劃在grails中升級hibernate。
有一個java 8時間hibernate用戶類型(jadira擴展包)的實現,可以像joda時間插件一樣使用(見http://gpc.github.io/joda-time/guide/persistence.html)。對我而言,只有版本3.1.0.GA和更低的工作。
的build.gradle
dependencies {
compile "org.jadira.usertype:usertype.extended:3.1.0.GA"
}
application.groovy
grails.gorm.default.mapping = {
"user-type" type: org.jadira.usertype.dateandtime.threeten.PersistentInstantAsMillisLong, class: java.time.Instant
}