Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DB4O递归删除,它实际上是如何工作的?_Java_Database_Db4o_Cascading Deletes - Fatal编程技术网

Java DB4O递归删除,它实际上是如何工作的?

Java DB4O递归删除,它实际上是如何工作的?,java,database,db4o,cascading-deletes,Java,Database,Db4o,Cascading Deletes,我有点被db4o作业卡住了,我真的不知道如何解决这个问题 我有一个简单的学校学生/学分/课程数据库。对象具有以下属性: 学生: 身份证 名字 课程: 身份证 名字 类型 学分: 学生 课程 等级 现在,当删除一门课程时,我也应该删除与该课程相关的一个或多个学分。我已经阅读了db4o手册并试图理解整个cascadeOnDelete,但我不确定的第一件事是,我必须为课程或学分对象将cascadeOnDelete设置为true吗 下一个问题是,我应该能够找到与该课程相关的所有学分。如何在d

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

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

学生:

  • 身份证
  • 名字
课程:

  • 身份证
  • 名字
  • 类型
学分:

  • 学生
  • 课程
  • 等级
现在,当删除一门课程时,我也应该删除与该课程相关的一个或多个学分。我已经阅读了db4o手册并试图理解整个cascadeOnDelete,但我不确定的第一件事是,我必须为课程或学分对象将cascadeOnDelete设置为true吗

下一个问题是,我应该能够找到与该课程相关的所有学分。如何在db4o中实现这一点

db4o手册中有一些示例,但是带有硬编码的值,因此没有多大帮助。有没有一种方法可以在db4o中使用类似SQL的查询来查找具有“正确”引用的信用

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


我在这里很困惑,不知道如何进行,因此非常感谢您的帮助。谢谢。

您可以在数据库级别或仅针对特定类启用级联删除:

// 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上是一个提供进一步解释的网站