Grails GORM绑定字段两次

时间:2016-11-15 15:41:20

标签: grails gorm

我有一个简单的域对象。

class Product {

    public static final String TRACE_SKU="236"

    Integer xRefId

    static constraints = {
        xRefId(nullable:true)
    }

    static mapping = {
        table 'product'
        version false
        id generator:'identity', column:'id'
        xRefId column:'xref_id'
        cache usage: 'nonstrict-read-write'
   }

}

我在应用程序启动时以及运行测试用例时收到以下错误。

Repeated column in mapping for entity: com.appdroplet.tricor.common.domain.product.Product column: xref_id (should be mapped with insert="false" update="false")

另外,当我检查错误日志时,我看到了这条消息。

[ 15.11.16 09:34:50.403] [main] [DEBUG] [org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder] [GrailsDomainBinder] Mapping Grails domain class: com.appdroplet.tricor.common.domain.product.Product -> product
[ 15.11.16 09:34:50.403] [main] [DEBUG] [org.codehaus.groovy.grails.commons.spring.ReloadAwareAutowireCapableBeanFactory] Returning cached instance of singleton bean 'orgGrailsBeansConstraintsEvaluator'
[ 15.11.16 09:34:50.405] [main] [DEBUG] [org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder] [GrailsDomainBinder] bound property [id] to column name [id] in table [product]
[ 15.11.16 09:34:50.405] [main] [DEBUG] [org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder] [GrailsDomainBinder] Binding persistent property [XRefId]
[ 15.11.16 09:34:50.405] [main] [DEBUG] [org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder] [GrailsDomainBinder] Binding property [XRefId] as SimpleValue
[ 15.11.16 09:34:50.407] [main] [DEBUG] [org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder] [GrailsDomainBinder] bound property [XRefId] to column name [xref_id] in table [product]
[ 15.11.16 09:34:50.407] [main] [DEBUG] [org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder] [GrailsDomainBinder] Binding persistent property [xRefId]
[ 15.11.16 09:34:50.407] [main] [DEBUG] [org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder] [GrailsDomainBinder] Binding property [xRefId] as SimpleValue
[ 15.11.16 09:34:50.407] [main] [DEBUG] [org.codehaus.groovy.grails.orm.hibernate.cfg.GrailsDomainBinder] [GrailsDomainBinder] bound property [xRefId] to column name [xref_id] in table [product]

由于某种原因,Grails两次绑定相同的属性。

Project正在使用Grails 2.3.0

1 个答案:

答案 0 :(得分:0)

您不能拥有以Id结尾的财产。

拥有以下课程

Book {
    Author author
}
grails惯例的

book.authorId表示您想要获取属性作者的Id。其他用法可能会产生错误。

默认情况下,book表中的作者被映射为author_id。

您可以在documentation

中了解有关GORM的更多信息