java - 从容器对象中删除引用后,db4o 会留下空闲对象。如何解决呢?

标签 java db4o

有人知道如何让 db4o 在以下场景中工作吗?我尝试了cascadeOnUpdate()但失败了。

class Class1 {
    int 字段;
}

类2类{
    Class1[] clsArray;
}

//我通常这样改变Class2的对象
Class2 obj = getFromContainer();
obj.clsArray = null;
objectContainer.store(obj);
objectContainer.commit();

问题是db4o没有从数据库中删除Class1对象,这不符合我的要求。我在Class2上尝试了cascadeOnUpdate(),但它也不起作用。我是否需要循环进入 Class2.clsArray 并显式删除每个对象?或者有没有更简单的方法有人可以给我提供技术。

最佳答案

您基本上是在寻找某种“垃圾收集”,当对象不再被引用时,对象就会被删除。

db4o 没有此功能。您需要手动查看数组并删除对象。

关于java - 从容器对象中删除引用后,db4o 会留下空闲对象。如何解决呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12759723/

相关文章:

java - db4o 和替代品

full-text-search - 使用 DB4O 进行全文搜索

web-applications - 任何人都可以想到一些很好的理由*不*使用面向对象的DBMS来支持网站吗?

java - 使用 Db4o 如何更新我们定义了唯一约束的现有对象

java - 提供具有相同文件分割的 map 分割

java - Solr(php 与 java): query differences when determining number of documents

java - 编写 Java 库以有条件地处理输入类而不会导致对该类的无条件运行时依赖

java - forEach jSTL 中的内部 forEach 错误

java - synchronized 方法到底做了什么?

java - 如何在 db4o 中正确索引 java.util.uuid?