我试图通过调整我的db4o实例来弄清楚会发生什么,但这真的让我发疯:它对我来说根本没有意义。
基本上我正在创建两个对象并将第一个存储在第二个的ArrayList中。然后我想从整个数据库和我最初存储的列表中删除第一个对象。
以下是我正在运行的操作的基本列表。
User user = new User("user");
Device device = new Device("device");
objectContainer.ext().store(user,5); // object storing depth
objectContainer.commit();
objectContainer.delete(device);
//objectContainer.close();
//objectContainer = new ...
此时如果我关闭并且我重新打开objectContainer,则用户deviceList包含一个空对象,而如果我不关闭容器(正常运行的应用程序通常应该避免),则设备对象仍在用户对象内,虽然它不在整个数据库中。
我只是希望从列表和数据库中删除对象,而不使用任何null对象。这可能吗??我已经尝试了许多调整配置(weakReferences,激活,约束......)很多但没有任何成功。
答案 0 :(得分:1)
为什么重新打开后对象仍然在列表中,而不是之前?
db4o不会从内存对象中''魔术''删除'对象。您必须确保对象模型具有一致状态,就像内存对象图中的任何其他状态一样。\