2011-04-03 47 views
3
class Owner { 
    static hasMany = Dog 
} 
class Sitter { 
    static hasMany = Dog 
} 
class Dog { 
    static belongsTo = [Owner, Sitter] 
} 

我的問題是:如果我創建一個Dog實例D,一個所有者實例O,一個Sitter實例S並將它與O和S關聯,當S被刪除時O會發生什麼? O還會有D嗎?既然是級聯刪除,S和D都會被刪除,對吧?當O發生什麼事情?它還會有D嗎?當belongsTo指定多個類時,Grails屬於級聯刪除嗎?

+0

我認爲它刪除了該實例。但是你可以在一個單獨的項目中很容易地測試它。我很想知道自己明確的答案。 – julkiewicz 2011-04-03 23:48:00

回答

2

我測試過了,它遵循級聯規則:如果你刪除所有者,Dog將被級聯刪除,但是Sitter將保留。

它是合理的:保持獨立於所有者。 Sitter應該與所有者一起被刪除是不合邏輯的,只是因爲他與所有者有一些共同的屬性。

+1

我的意思是,如果Sitter被刪除,所有者仍然有一隻狗?或者在你的例子中,如果所有者被刪除,Sitter是否仍然有狗? – Paul 2011-04-04 23:02:53

+1

@Pau:如果Sitter被刪除,狗也會被級聯刪除。所以業主不會有狗。對於另一種情況也是如此。 – 2011-04-05 01:07:51

+0

如果所有者被刪除,是否有辦法阻止Dog被刪除?因爲Sitter仍然有狗。 – RRK 2013-05-02 22:15:23