私は単純なドメインオブジェクトを持っています。GrailsのGORM結合フィールドを2回
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が同じプロパティを2回バインドしています。
プロジェクトではGrails 2.3.0を使用しています。
にGORMについての詳細を学ぶことができますか? – injecteer
マッピングではエラーは発生しませんが、テーブル[製品]の[バインドされたプロパティ[XRefId]とテーブル[製品]のバインドされたプロパティ[xref_id]、テーブル[product]のバインドされたプロパティ[xRefId]〜カラム名[x_ref_id] ] ' – mfleshman
フィールドの名前を 'xrefId'に変更するのは問題ですか? – injecteer