gpt4 book ai didi

java - Google App Engine - JDO - 如何更新集合?

转载 作者:行者123 更新时间:2023-12-01 05:47:49 24 4
gpt4 key购买 nike

我在尝试更新集合中的一个对象时遇到问题,使用 JDO。

以下是事实:

  • 我有一个类(我们称之为BigClass),具有嵌入式类(SmallClass)包含一个数组列表。
  • 我不使用/不需要交易。
  • 我查询数据库以获取列表BigClass 项目应该是修改的。我迭代每个他们。
  • 我从列表中删除一个元素嵌入的 SmallClass当前的BigClass,变化不是一直坚持。
  • 如果我在改变,它看起来修改过,但如果我检查DataViewer,该对象是未更新。
  • 我什至尝试过使用BigClass 上的 JDOHelper.makeDirty,带有 fieldName SmallClass,并且它还是不行。

一些相关代码:

Query q = pm.newQuery(BigClass.class,"id==:ids");
List<BigClass> participatingUsers=(List<BigClass>)
q.execute(participantIDs);

//Update the participants
ListIterator<BigClass> it=participatingUsers.listIterator();
BigClass participant;
boolean modified;
while(it.hasNext())
{
participant=it.next();
participant.list.remove(smth);

JDOHelper.makeDirty(participant,"collection");
}
....
modify other objects
....
pm.close()

另一件事是,我在这部分之后所做的一些更改是坚持...

所以,如果您有任何建议,请提出!

科斯明

最佳答案

list 中删除 smth 后,您可能需要调用 pm.makePersistent(participant); 来保留更改。

关于java - Google App Engine - JDO - 如何更新集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5507685/

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