2015-10-06 54 views
2

在grails 3應用程序中,我看到新的java.time類被持久化到數據庫。動態查詢和創建標準的作品。但是,我想知道是否有更好的方法來將這些時間數據存儲到數據庫中。當我看數據庫時,我看到一些二進制數據,它似乎只是序列化時間對象。Grails 3和Java 8時間支持

是否有與joda-time-plugin類似的插件,或者有什麼方法可以爲java.time類配置數據庫映射嗎?

回答

1

編輯: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 
}