使用" soft"在Grails GORM域类上发布问题加入

时间:2015-12-10 12:38:50

标签: grails gorm

我在Domain类上映射了两个表,比如说:

  • Parent表格hasMany的{​​{1}}。
  • ChildChildbelongsTo

我想指出,数据库上没有明确声明特定的Parent,而是在foreign keys的映射上声明。但是这里有一个问题:有些特殊类型的GORM是孤儿 - 也就是说,它们没有Child表对应物。每次我通过有效的Parent访问这些孤儿时,都会显示错误:

  

Child.findById()

访问非孤立Message: No row with the given identifier exists时不存在。我已经以这样的方式编组了这些Child表,每次Domain被解析为JSON时,它将有一个名为Child的属性,它是parents的数组,另一种方式。它已经在工作 - 除了这些孤儿'情况下。

我应该如何解决这个问题?我应该删除他们的Parent联接,因为它们实际上并不是数据库端的联合吗?

1 个答案:

答案 0 :(得分:1)

我假设您的域类看起来像这样:

class Parent {
    static hasMany = [children: Child]
}

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

那是fullfile。 GORM希望子表包含父表的外键,子表只有父表才能存在。

允许孤儿的一种方法是按照您的建议去做:删除gorm关联。另一种方法是删除 belongsTo 以创建单向关联。这样,孩子可以在没有父母的情况下存在。