Grails按孩子寻找父母

时间:2011-10-27 23:12:25

标签: grails

我浏览互联网,但我找不到我的问题的答案。应该很简单:

class Parent {
  String name
  Child child
}

当我有一个子对象时,我怎样才能得到它? 喜欢:

def Parent = Parent.findByChild(child)

我如何通过它获取父对象?

感谢

2 个答案:

答案 0 :(得分:3)

你在哪里看?

这些域类是什么?如果是这样,那么您可以通过has_many和belongs_to:

连接它们
class Parent {
    String name
    List children
    static has_many = [ children: Child ]
}

class Child {
   static belongs_to = [ parent: Parent ]
}

然后你可以写child.parent

答案 1 :(得分:0)

def parent = Parent.findByChild(child)运行正常 - 您可以将动态查找器用于标量字段(字符串,数字,布尔值等)和其他对象。

执行相反的操作并查找给定Child的所有Parent个实例的内容稍微复杂一些,但可以使用HQL完成:

def p = Parent.get(id)
def children = Parent.executeQuery(
       'select c from Child c, Parent p where p.child=c and p=:parent',
       [parent: p])