Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
GRAILS多个复合外键共享同一个表字段?_Grails_Foreign Keys_Gorm_Composite Key - Fatal编程技术网

GRAILS多个复合外键共享同一个表字段?

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

我试图将grails与现有的旧式遗留数据库一起使用。我有复合键无处不在(PK和FK)和。。。更多FK共享同一表列。例如:

所有表格共享“公司”值

而不是我的销售订单项目:

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")