假设我有以下内容:

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

我应该如何映射呢?

最佳答案

我只想问一下您想对“列”部分做什么,因为我不熟悉该概念? This堆栈溢出链接可能会有所帮助。

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

class Object B {

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

真的,除此之外,还没有更多。您可以使用ObjectBInstance.objectA.channelName从 View 中的objectA访问字段。

关于grails - 如何将引用映射到具有复合键ID的对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31326667/

10-10 09:30