0

我一直在尋找這幾天,找不到滿足我的答案。如何在Objectify中進行級聯刪除?

是的,我確實看過這篇文章how-do-you-implement-cascading-delete-in-objectify和Google Developer論壇的許多其他帖子。每個人都說「它與關係型數據庫不同」,但沒有人發佈過這個實現。

這些都是我的模型,

大學

public class University{ 

    @Id 
    private Long id; 

    private String title; 

    List<Ref<College>> colleges = new ArrayList<>(); 
} 

學院

public class College{ 

    @Id 
    private Long id; 

    private String title; 
} 

我簡化我的模型,使它看起來更乾淨。我想同時刪除大學和學院。

在這個例子中有兩個層次的層次結構,但在我的項目中我有三個層次的層次結構。找到一個實體的孩子和孫子並刪除他們對我來說似乎不是很有效。

回答

1

大家都說與關係數據庫不一樣。根據定義,您不能刪除「所有相關對象」。您必須逐個刪除每個實體。

0

你不能。

如果您的數據確實是一個未引用的層次結構,請考慮使用嵌入對象對其進行建模,因此只有一個基礎文檔。然後更新或刪除將在一個數據存儲實體上。

如果不是,那麼當你想要刪除時,必須有關於什麼可以刪除和哪些不能刪除的邏輯,你需要自己編程