Grails一对多关系

时间:2013-08-14 10:43:25

标签: rest grails grails-domain-class

在Grails中,如果存在多对多关系,例如book has many authors

让Lets说book1 has author1,autho2,author3,author4值。现在发送一个PUT请求,说book1只有author1,author3,然后从表中删除其他两个值。

现在对于具有一对多关系的相同场景,如果PUT请求仅使用author1,author3

,则现在可以说book1 has author1,autho2,author3,author4

是否要删除其他两个i.e, author2 and author4值?我希望行为如此......

以下是我的书籍和作者的模型

class Author {
String name;
    static hasMany = [books: Book]

     static mapping = {
    books cascade: 'all-delete-orphan'
}
}

class Book{
    String name
    static belongsTo = [author: Author]
}

编辑:

当我实现all-delete-orphan时,我得到了followinh错误 cascade =" all-delete-orphan"的集合不再由拥有实体实例引用

1 个答案:

答案 0 :(得分:1)

这取决于级联选项集。如果您在belongsTo表上使用Author,则默认使用cascade all。这意味着如果Author对象未被任何其他Book使用,则会将其删除。您可以使用cascade选项自定义此行为(all-delete-orphan应该是您感兴趣的值。)