我正在尝试建立父母/子女关系。
我有以下域类:
package test
class Person {
Person mother
Person father
String name
static hasOne = [father: Person, mother: Person]
static constraints = {
name()
father(nullable:true)
mother(nullable:true)
}
def Set<Person> children(){
return Person.findAllByMother(this)
}
}
我已经执行了generate-all
但是,如果我尝试创建一个新Person,我会收到以下错误:
Message: Parameter "#2" is not set; SQL statement:
insert into person (id, version, father_id, mother_id, name) values (null, ?, ?, ?, ?) [90012-164]
Line | Method
->> 329 | getJdbcSQLException in org.h2.message.DbException
应该在哪里生成版本参数?我认为这应该在保存调用期间自动生成。
更新:问题似乎与父/母关系有关,因为删除它并重新生成视图意味着元素保持不变。
答案 0 :(得分:0)
这个问题似乎与我试图在课堂上建立双向关系的事实有关。事实上这不是必需的。有一个单向关系的人 - &gt;父亲和人 - &gt;母亲。逆向是根据儿童计算的(我将扩展到包括父亲。)
我的最后一堂课是:
package test
class Person {
int id
Person mother
Person father
String name
static constraints = {
name()
father(nullable:true)
mother(nullable:true)
}
def Set<Person> children(){
return Person.findAllByMother(this)
}
}
我还是Grails的新手。