Java Android上DB4O的问题-更新对象

Java Android上DB4O的问题-更新对象,java,android,db4o,Java,Android,Db4o,我在尝试更新persistences对象时遇到问题 我使用检索我的对象 objectContainer.query(myObject); 使用以下命令修改并再次保存: objectContainer.store(myObject); 但是这个对象不更新,只保存另一个对象 我尝试使用以下方法获取对象: long idObject=objectContainer.ext().getID(myObject) 但也出现了同样的问题。 有人知道会发生什么吗 谢谢,对不起,我的英语。在加载对象和调用ob

我在尝试更新persistences对象时遇到问题

我使用检索我的对象

objectContainer.query(myObject);
使用以下命令修改并再次保存:

objectContainer.store(myObject);
但是这个对象不更新,只保存另一个对象

我尝试使用以下方法获取对象:

long idObject=objectContainer.ext().getID(myObject)

但也出现了同样的问题。 有人知道会发生什么吗


谢谢,对不起,我的英语。

在加载对象和调用
objectContainer.Store(myObject)
之间是否关闭了对象容器?在我看来,您似乎没有使用相同的对象容器实例来加载和存储对象

db4o通过对象的标识来识别对象。以实现对象容器具有。当您调用store时,db4o将在该映射中查找它是否是现有对象。如果是,它将更新该对象。否则,它假定对象是新对象

要解决此问题,请不要关闭对象容器,而是将其保持打开状态。如果这不是一个选项,则需要从数据库加载对象,并将其与包含更改的对象合并


如果这个答案不能解决您的问题,请让我知道=)

我们可以假设您在某个阶段也调用“提交”吗?Gamlor在这方面可能是正确的——将对象存储到与从中检索对象不同的ObjectContainer是导致此问题的最常见原因。
objectContainer.ext().getById(idObject);