我目前正在使用Grails 1.3.7,并且我通过一对一对一的关系连接了以下域类:
class Parent {
Child child1
Child child2
static constraints = {}
}
和
class Child {
static belongsTo = [parent:Parent]
static constraints = {}
}
在单独的服务类中,我有以下方法:
def checkParent(child) {
log.info(child.parent)
}
最后,在我的控制器中,我有以下代码:
Parent parent = new Parent()
parent.child1 = new Child()
parent.child2 = new Child()
parent.save(flush:true)
childService.checkParent(parent.child1)
childService.checkParent(parent.child2)
我的日志输出显示Child
个对象之一总是对parent
有空引用,而另一个对象的反向引用按预期建立。
为什么会这样?
答案 0 :(得分:1)
你的Child课程应该是这样的:
class Child {
Parent parent
static belongsTo = [Parent]
}
然后你的代码就可以了。另一件事是,对于不同的域类属性,您有两个对同一域类的引用,您可能需要检查mappedBy。