GRAILS多个复合外键共享同一个表字段?
我试图将grails与现有的旧式遗留数据库一起使用。我有复合键无处不在(PK和FK)和。。。更多FK共享同一表列。例如: 所有表格共享“公司”值 而不是我的销售订单项目:GRAILS多个复合外键共享同一个表字段?,grails,foreign-keys,gorm,composite-key,Grails,Foreign Keys,Gorm,Composite Key,我试图将grails与现有的旧式遗留数据库一起使用。我有复合键无处不在(PK和FK)和。。。更多FK共享同一表列。例如: 所有表格共享“公司”值 而不是我的销售订单项目: class SalesOrderItem implements Serializable{ .... Material mat static belongsTo = [order: SalesOrder] static mapping = { table 'MYORDERI
class SalesOrderItem implements Serializable{
....
Material mat
static belongsTo = [order: SalesOrder]
static mapping = {
table 'MYORDERITEMSTABLE'
id composite: ["order", "lineNumber"], generator: "assigned"
lineNumber column: 'ITEMNUMBER'
columns {
order { column name:'COMPANY'
column name:'ORDERNUMEBR' }
}
前面的所有代码都有效(仅适用于Grails2.0 M1)。我的“订单”有一个复合主键(公司+订单ID),我的“订单行”有一个复合主键(公司+订单ID+订单ID)
当我有其他属性与组合键共享“company”属性作为FK的一个元素时,就会出现问题,如
columns{
mat { column name: 'COMPANY', insertable:false, updateable:false
column name: 'MATTYPE'
column name: 'MATCODE'
column name: 'MATCODEEXT1'
column name: 'MATCODEEXT2'
}
}
这不起作用,产生的错误是
Repeated column in mapping for entity: SalesOrderItem
column: COMPANY (should be mapped with insert="false" update="false")
我被困在这里了。如果只是一个案例,我会使用一些廉价且肮脏的解决方法,但我有很多这样的案例
你有什么建议吗?暗示解决方案谢谢你的帮助
谢谢,
洛伦佐
更新 我在下面的帖子中发现了与hibernate基本相同的问题: 这似乎仍然是一个悬而未决的问题:
我想,没有冬眠,也没有死亡。至于解决方法,我正在考虑使用事件aferLoad、beforeInsert、beforeUpdate来加载/更新与此FK链接的域类。我在这里发布了类似的解决方案[在GORM中重命名复合外键][1]:
Repeated column in mapping for entity: SalesOrderItem
column: COMPANY (should be mapped with insert="false" update="false")