【问题标题】:Grails 3 and Java 8 time supportGrails 3 和 Java 8 时间支持
【发布时间】:2016-01-03 15:36:38
【问题描述】:

在 grails 3 应用程序中,我看到新的 java.time 类被持久化到数据库中。动态查询和创建标准有效。但是,我想知道是否有更好的方法将这些时间数据存储到数据库中。当我查看数据库时,我看到了一些二进制数据,它似乎只是序列化了时间对象。

有没有类似 joda-time-plugin 的插件,或者有什么方法可以为 java.time 类配置数据库映射?

【问题讨论】:

    标签: grails grails-orm java-time grails-3.0


    【解决方案1】:

    编辑:Grails 3.1.1 具有休眠 5,因此这不再是问题...

    圣杯

    我终于找到了解决办法。首先,hibernate 5 实现了 java 8 时间的持久化 (https://hibernate.atlassian.net/browse/HHH-8844)。但是,grails 3 使用 hibernate 4,我还没有找到任何在 grails 中升级 hibernate 的计划。

    有一个 java 8 time hibernate 用户类型(jadira 扩展包)的实现,可以像在 joda time 插件中一样使用它(参见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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-06
      • 2014-10-22
      • 2014-04-26
      • 1970-01-01
      • 1970-01-01
      • 2016-10-14
      相关资源
      最近更新 更多