【问题标题】:How to do cascading delete in Objectify?如何在 Objectify 中进行级联删除?
【发布时间】:2016-04-13 02:50:31
【问题描述】:

过去几天我一直在寻找,但找不到令我满意的答案。

是的,我确实查看了这篇帖子 how-do-you-implement-cascading-delete-in-objectify 以及来自 Google 开发者论坛的许多其他帖子。

每个人都说“它与关系数据库不同”,但没有人为此发布实现。

这些是我的模型,

大学

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;
}

我简化了模型以使其看起来更简洁。我想同时删除大学和学院。

在此示例中,有两个级别的层次结构,但在我的项目中,我有三个级别的层次结构。查找实体的子孙并删除它们对我来说似乎不是很有效。

【问题讨论】:

    标签: java google-app-engine google-cloud-endpoints objectify nosql


    【解决方案1】:

    正如大家所说的它与关系数据库不同

    您没有关系,因此根据定义,您不能删除“所有相关对象”。您必须一个一个地删除每个实体。

    【讨论】:

      【解决方案2】:

      你不能。

      如果您的数据确实是一个未引用的层次结构,请考虑使用嵌入对象对其进行建模,这样就只有一个基础文档。然后更新或删除将在一个数据存储实体上。

      如果不是,那么当你确实要删除时,必须有关于哪些可以删除和哪些不能删除的逻辑,你需要自己编程

      【讨论】:

        猜你喜欢
        • 2015-07-27
        • 1970-01-01
        • 1970-01-01
        • 2011-10-12
        • 2022-09-26
        • 2018-07-19
        • 2016-03-06
        • 2013-08-01
        相关资源
        最近更新 更多