Intellij idea 带有@GrailsCompileStatic注释的Grails GORM类在静态映射闭包表、版本、autoTimestamp中显示为未解析符号

Intellij idea 带有@GrailsCompileStatic注释的Grails GORM类在静态映射闭包表、版本、autoTimestamp中显示为未解析符号,intellij-idea,grails,grails-domain-class,Intellij Idea,Grails,Grails Domain Class,参考资料: package de.equeo.requestcode 导入grails.compiler.GrailsCompileStatic @颗粒状的 类特征{ 字符串名 静态映射={ 表“rq_功能” 版本错误 自动时间戳错误 } } 这只会导致IDE中出现错误(在grails run app或编译时可以正常工作): 我以前从未花过太多时间来解决这个问题,但现在我有了一个解决办法 第一个解决方法(推荐) 正如@JamesKleeh所回答的,您甚至不需要为类型安全DSL定义上述方法:

参考资料:

  • package de.equeo.requestcode
    导入grails.compiler.GrailsCompileStatic
    @颗粒状的
    类特征{
    字符串名
    静态映射={
    表“rq_功能”
    版本错误
    自动时间戳错误
    }
    }
    
    这只会导致IDE中出现错误(在
    grails run app
    或编译时可以正常工作):


    我以前从未花过太多时间来解决这个问题,但现在我有了一个解决办法

    第一个解决方法(推荐) 正如@JamesKleeh所回答的,您甚至不需要为类型安全DSL定义上述方法:

    package com.wizpanda.hooman
    导入grails.compiler.GrailsCompileStatic
    导入静态grails.gorm.hibernate.mapping.MappingBuilder.orm
    @颗粒状的
    类用户{
    字符串名
    字符串姓氏
    线状生物
    字符串电子邮件
    静态最终映射=orm{
    表“rq_特征”
    版本错误
    自动时间戳错误
    属性(“bio”,[类型:“文本”])
    属性(“名字”{
    列([名称:“fn”])
    })
    }
    }
    
    第二个解决方法
    我使用了自己的逻辑,创建了一个静态方法
    applyFooMapping
    ,它使用
    @DelegatesTo
    注释来愚弄IDE我以前从未花太多时间来找出解决方法,但现在我有了一个解决方法

    第一个解决方法(推荐) 正如@JamesKleeh所回答的,您甚至不需要为类型安全DSL定义上述方法:

    package com.wizpanda.hooman
    导入grails.compiler.GrailsCompileStatic
    导入静态grails.gorm.hibernate.mapping.MappingBuilder.orm
    @颗粒状的
    类用户{
    字符串名
    字符串姓氏
    线状生物
    字符串电子邮件
    静态最终映射=orm{
    表“rq_特征”
    版本错误
    自动时间戳错误
    属性(“bio”,[类型:“文本”])
    属性(“名字”{
    列([名称:“fn”])
    })
    }
    }
    
    第二个解决方法
    我使用了我自己的逻辑,并创建了一个静态方法
    applyFooMapping
    ,它使用
    @DelegatesTo
    注释愚弄IDE,而不是使用GORM 6.1中添加的内置类型安全dsl

    import static grails.gorm.hibernate.mapping.MappingBuilder.*
    
    class Book {
        String title
    
        static final mapping = orm {
    

    您可以使用GORM 6.1中添加的内置类型安全dsl,而不是这样做

    import static grails.gorm.hibernate.mapping.MappingBuilder.*
    
    class Book {
        String title
    
        static final mapping = orm {
    

    哦这太棒了。我知道圣杯里一定有什么东西,而你却出现了。非常感谢。新的映射生成器看起来真的很酷。我知道Grails团队已经忙得不可开交了,但是如果在文档中有一些额外的例子和/或在google上搜索时出现的一篇简短的博客文章,这将真正有助于Grails被采纳。哦!这太棒了。我知道圣杯里一定有什么东西,而你却出现了。非常感谢。新的映射生成器看起来真的很酷。我知道Grails团队已经忙得不可开交了,但如果在文档中有一些额外的例子和/或在google上搜索时出现的一篇简短的博客文章,这将真正有助于Grails被采用我开始进行这些Hibernate更改:
    Hibernate:alter table contact add column owner bytea not null
    Hibernate:alter table question add column owner bytea not null这对我来说是一个很大的倒退。我的代码是这样的。我尝试了您的解决方法,但在我的例子中,使用IntelliJ 2019.1.3,@GrailsCompileStatic的存在会触发这些错误。当我注释注释注释时,建议的解决方案不起作用。当我尝试“第三个解决方案(推荐)”时我开始进行这些Hibernate更改:
    Hibernate:alter table contact add column owner bytea not null
    Hibernate:alter table question add column owner bytea not null这对我来说是一个很大的倒退。我的代码是这样的。我尝试了您的解决方法,但在我的例子中,使用IntelliJ 2019.1.3,@GrailsCompileStatic的存在会触发这些错误。当我注释注释注释时,建议的解决方法不起作用。