我想弄清楚调整我的db4o实例会发生什么,但这真的让我发疯:它对我来说根本没有意义。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包含一个空对象,而如果我不关闭容器(作为普通运行的应用程序通常应避免)设备对象是静止在用户对象内部,而不在整个数据库中。
我只想要将对象从列表和数据库中删除,但没有任何空对象就位。这可能吗??我已经尝试了许多调整配置(弱引用,激活,约束......),但没有取得任何成功。
显然不会被删除或者从数据库这个例子中表现出来; – giulio
该对象只有在不能从缓存中的任何其他对象进行访问时才会被删除。所以你必须从每个使用它的地方删除对象,才能真正删除它。 – Galigator
我重新创建了DBManager,所以现在关系是手动维护的。我认为,由于缓存,避免这种情况是不可能的。即使试图直接读取数据库也是不可能的,因为对象保存在java堆中,并在重新启动后立即删除。 – giulio