gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 15:56:04 25 4
gpt4 key购买 nike

当我尝试更新持久性对象时遇到问题。

我使用以下方法检索我的对象。

objectContainer.query(myObject);

修改并再次保存使用:

objectContainer.store(myObject);

但是这个对象不会更新,只是保存另一个对象。

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

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

objectContainer.ext().getById(idObject);

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

谢谢,对不起我的英语。

最佳答案

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

db4o 通过对象的身份来识别对象。要实现对象容器有 a map which remembers all loaded objects 。当您调用 store 时,db4o 在该映射中查找它是否是现有对象。如果是这样,它会更新该对象。否则,它假设该对象是一个新对象。

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

如果这个答案不能解决您的问题,请告诉我 =)

关于java - Android 上的 DB4O 问题 - 更新对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5030066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com