【问题标题】:How to check GORM version of grails application如何检查 Grails 应用程序的 GORM 版本
【发布时间】:2019-07-30 17:18:43
【问题描述】:

我正在对在数据库查询期间在某些字段上引发错误的代码以及加载方法的一些构造函数进行一些调试。 在创建类/模型的实例之前,我们在对象上手动设置属性,但是由于某种原因,这些字段(DateCreated、DateUpdated)在传递它们后不久就会返回 null。

到目前为止,我们已经验证这些字段实际上不是空的,所以我们担心 GORM 正在删除并尝试替换这些字段,因为命名约定,也许我们应该保留我们自己的这些字段的手动设置字段,并允许 GORM 管理它们。

有没有办法查看 grails 应用程序使用的是哪个版本的 GORM,或许可以了解它是如何管理这些字段的,并为这个对象使用它自己生成的构造函数?

【问题讨论】:

    标签: java spring hibernate grails grails-orm


    【解决方案1】:

    我们在创建对象之前手动设置对象的属性 类/模型的实例...

    在创建对象之前无法设置对象的属性。

    ...所以我们担心的是 GORM 正在删除并试图 由于命名约定,替换这些字段

    您还没有说属性名称是什么,但如果它们是dateCreatedlastUpdated,那么 GORM 将特别处理这些属性。如果你不想这样,你可以关闭自动时间戳,如下所示......

    class Person {
        Date dateCreated
        Date lastUpdated
        static mapping = {
            autoTimestamp false
        }
    }
    

    请参阅第 8.1.9 节http://gorm.grails.org/6.1.8/hibernate/manual/index.html#eventsAutoTimestamping

    【讨论】:

      【解决方案2】:

      取决于您使用的 grails 版本。假设您使用的是较新的 grails 版本。 GORM 版本应该在你的 grails 项目内的gradle.properties 文件中指定,它看起来像这样:

      grailsVersion=3.3.2
      gormVersion=6.1.8.RELEASE
      gradleWrapperVersion=3.5
      

      你也可以通过这个 gradle 任务从 gradle 依赖树中找到它:

      ./gradlew dependencies
      

      【讨论】:

        猜你喜欢
        • 2011-03-11
        • 1970-01-01
        • 1970-01-01
        • 2012-05-23
        • 1970-01-01
        • 2021-08-19
        • 1970-01-01
        • 1970-01-01
        • 2011-03-21
        相关资源
        最近更新 更多