当belongsTo指定多个类时,Grails属于级联删除吗? [英] Grails belongsTo cascade on delete when belongsTo specifies multiple classes?

查看:119
本文介绍了当belongsTo指定多个类时,Grails属于级联删除吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  class所有者{
static hasMany = Dog
}
class Sitter {
static hasMany = Dog
}
class Dog {
static belongsTo = [Owner,Sitter]
}

我的问题是:如果我创建一个Dog实例D,一个所有者实例O,一个Sitter实例S并将D与O和S关联,当S被删除时O会发生什么? O还会有D吗?既然是级联删除,S和D都会被删除,对吧?当O发生什么事情?它还会有D吗?我已经测试过了,它遵循级联规则:如果你删除了所有者,那么Dog将会是删除级联,但Sitter将保持。



这是合理的:Sitter与所有者无关。 Sitter应该与所有者一起被删除是不合逻辑的,只是因为他与Owner有共同的属性。


class Owner {
    static hasMany = Dog
}
class Sitter {
    static hasMany = Dog
}
class Dog {
    static belongsTo = [Owner, Sitter]
}

My question is: If I create a Dog instance D, a Owner instance O, a Sitter instance S and associate D with both O and S, what happens to O when S gets deleted? Would O still have D? Since it's a cascade-delete, both S and D would get deleted, right? When what happens to O? Would it still have D?

解决方案

I have tested it, it follows the cascade rule: if you delete Owner, Dog will be deleted by cascade, but Sitter will remain.

And it's reasonable: Sitter is independent with Owner. It's illogical that Sitter should be deleted along with Owner, just because he has some common properties with Owner.

这篇关于当belongsTo指定多个类时,Grails属于级联删除吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆