2011-03-30 99 views
0

所以我有一个1:1的关系:的Grails GORM字段初始化问题

class Number1 { 
    Number2 n2 
} 

class Number2 { 
    belongsTo = [n2: Number2] 
} 

现在,我想在课堂上数字1来初始化N2,如:

class Number1 { 
    Number2 n2 = New Number2(...).save() 
} 

但Grails是用Hibernate的异常失败。用这种关系初始化字段的最佳做法是什么?

回答

1

我认为这里有一个错误。至于你的问题的状态,一个NUMBER2应该属于关联数字1,本身并不:

belongsTo = [n1: Number1] 

如果定义NUMBER2 belongsTo数字1,数字的对象将无法坚持,如果没有相关的数字1对象。您必须先将Number2对象添加到某个Number1对象。

做这样的事情在控制器:

def a = new Number1(); 
def b = new Number2(); 

b.addToN1(a) 
... 

你应该了解更多详情请查看GORM Gotchas series。它将演示如何避免使用Grails持久性时发生的常见错误。