【问题标题】:DB4O recursive deleting, how it actually works?DB4O 递归删除,它实际上是如何工作的?
【发布时间】:2012-02-15 21:14:49
【问题描述】:

我的 db4o 作业有点卡住了,我真的不知道如何解决这个问题。

案例是我有一个简单的学生/学分/课程数据库。对象具有以下属性:

学生:

  • 身份证
  • 姓名

课程:

  • 身份证
  • 姓名
  • 类型

学分:

  • 学生
  • 课程
  • 等级

现在,在删除课程时,我还应该删除引用该课程的学分。我已经阅读了 db4o 手册并试图理解整个 cascadeOnDelete 的事情,但我不确定的第一件事是我是否必须将课程或学分对象的 cascadeOnDelete 设置为 true?

下一个问题是我应该能够找到参考该课程的所有学分。如何在 db4o 中准确地做到这一点?

db4o 手册有一些示例,但带有硬编码值,所以它不是很有帮助。有没有办法在 db4o 中使用类似 SQL 的查询来查找具有“正确”引用的学分?

我也必须先存储课程原型,然后找到学分,然后先删除学分,最后删除课程吗?

我在这里很困惑,不知道如何进行,因此不胜感激。谢谢。

【问题讨论】:

    标签: java database db4o cascading-deletes


    【解决方案1】:

    您可以在 db 级别或仅针对特定类打开级联删除:

    // 1: For the whole DB
    container.Ext().Configure().CascadeOnDelete(true);
    //2: For a specific type
    container.Ext().Configure().ObjectClass(typeof(Circle)).CascadeOnDelete(true);
    

    在 codeproject.com 上有一个 article on deleting objects 提供进一步的解释。

    【讨论】:

      猜你喜欢
      • 2010-12-06
      • 1970-01-01
      • 2013-09-27
      • 1970-01-01
      • 2016-10-05
      • 1970-01-01
      • 2021-01-21
      • 2011-09-27
      • 2021-12-16
      相关资源
      最近更新 更多