2015-10-06 77 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 
}