我在Domain
类上映射了两个表,比如说:
Parent
表格hasMany
的{{1}}。Child
表Child
表belongsTo
。我想指出,数据库上没有明确声明特定的Parent
,而是在foreign keys
的映射上声明。但是这里有一个问题:有些特殊类型的GORM
是孤儿 - 也就是说,它们没有Child
表对应物。每次我通过有效的Parent
访问这些孤儿时,都会显示错误:
Child.findById()
访问非孤立Message: No row with the given identifier exists
时不存在。我已经以这样的方式编组了这些Child
表,每次Domain
被解析为JSON时,它将有一个名为Child
的属性,它是parents
的数组,另一种方式。它已经在工作 - 除了这些孤儿'情况下。
我应该如何解决这个问题?我应该删除他们的Parent
联接,因为它们实际上并不是数据库端的联合吗?
答案 0 :(得分:1)
我假设您的域类看起来像这样:
class Parent {
static hasMany = [children: Child]
}
class Child {
static belongsTo = [parent: Parent]
}
那是fullfile
。 GORM希望子表包含父表的外键,子表只有父表才能存在。
允许孤儿的一种方法是按照您的建议去做:删除gorm关联。另一种方法是删除 belongsTo 以创建单向关联。这样,孩子可以在没有父母的情况下存在。