如何使用复合键ID映射对象的引用

时间:2015-07-09 19:34:19

标签: grails orm gorm hibernate-mapping legacy

假设我有以下内容:

class ObjectA implements Serializable {
    Foo foo
    String objectType

    static mapping = {
        version false
        id composite: ['foo', 'objectType']
        foo column: 'foo'
        objectType column: 'objecttype'
    }
}

现在,我需要从另一个域引用此对象。

class ObjectB {
    ObjectA objectA

    columns {
       objectA{
          column name: 'foo'
          column name: 'objecttype'
       }
    }
}

当我尝试加载ObjectB时,我得到以下内容:

Cannot treat multi-column property as a single-column property

我该如何映射?

1 个答案:

答案 0 :(得分:-1)

你试图用栏目做什么,我只是问,因为我不熟悉这个概念? This堆栈溢出链接可能有所帮助。

但是,如链接中所示,如果要引用该对象,则应在两个域之间创建关系(示例中的一个是单向的)。

class Object B {

    static hasOne[objectA:ObjectA]
    ....
}

那时真的没有更多。您只需使用ObjectBInstance.objectA.channelName就可以在视图中访问objectA中的字段。