通过子对象查找父对象一对多关系 Grails

Find Parent By Child One to Many Relation Grails

我有这个类:

class Parent{
    static hasMany = [children:Child]
}

class Children{
    static belongsTo = [Parent]
}

我想做类似的事情

Parent.findByChildren(ChildInstance)

在数据库中有一个 table 与关系 ID,但我不知道如何访问它。

但是这样不行,哪个才是正确的方法?

谢谢

首先,我会将 Children 域中的关系更改为

static belongsTo = [parent: Parent]  // suggested by @bassmartin

Parent parent

两者做同样的事情。

获得 ChildInstance 和对 parent 的引用后,您可以简单地执行

ChildInstance.parent     // returns instance of parent

同样,如果你想找到一个parent的所有children,你可以这样做

parent.children          // return an array of children which you can iterate over.

更改您的 Children class belongsTo 子句:

class Children{
    static belongsTo = [parent: Parent]
}

这将允许您访问 child 的 parent 实例:childInstance.parent