DB4O更新深度问题

DB4O更新深度问题,db4o,Db4o,我在存储对复杂对象的更改时遇到一些问题。我已经做了很多挖掘工作,但我一辈子都搞不清楚这一点 通过调试,我可以清楚地看到对象在存储之前是正确的,但是当我检索存储的数据时,它是空的(比如说增加一个stat)。具体如下 StatSheet有一个球员列表 玩家有一个属性列表 ArrayList of Stats Sheets->ArrayList of Player->ArrayList of Stats 无论我做什么,Stat对象的ArrayList在进行更改后都不会存储。玩家列表似乎更新得很好,这让

我在存储对复杂对象的更改时遇到一些问题。我已经做了很多挖掘工作,但我一辈子都搞不清楚这一点

通过调试,我可以清楚地看到对象在存储之前是正确的,但是当我检索存储的数据时,它是空的(比如说增加一个stat)。具体如下

StatSheet有一个球员列表 玩家有一个属性列表

ArrayList of Stats Sheets->ArrayList of Player->ArrayList of Stats
无论我做什么,Stat对象的ArrayList在进行更改后都不会存储。玩家列表似乎更新得很好,这让我很困惑。我已尝试将更新深度更改为2、3、4、5及更高。我还特别尝试将cascadeOnUpdate设置为true。有人能帮忙吗,我已经做了好几天了。

我研究db4o已经有一段时间了,您没有提供很多关于您的环境或代码的详细信息,但是您可以看看这些解决方案:

  • 你使用网络环境吗?那么看看第一个答案:

  • 存储对象时是否使用“提交”?因为在存储和更新过程之后,您应该提交更改


对象的数组列表已存储,但db4o不知道如何处理内部对象。ArrayList不可“激活”,因此无法检索对象。 您必须将activationPurpose放在存储对象的每个getter/setter上,以启用对象的激活

由于无法在本机java对象上执行此操作,DB4O为您提供了一些已在getter/setter上标记为activationPurpose的对象:例如:

com.db4o.collections.ActivatableArrayList


因此,每个应该存储的java集合都必须用它的db4o等价物(com.db4o.collections.*)替换。

我没有使用web环境。然而,我正在Android上开发。此外,我以前没有使用“提交”,我已将其添加到中,但仍然存在相同的问题..:(