【发布时间】:2011-03-31 23:39:54
【问题描述】:
我在尝试更新集合中的一个对象时遇到问题, 使用 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()
另一件事是我在这部分之后所做的一些更改是 坚持...
所以,如果你有什么建议,请拍!
宇宙
【问题讨论】:
-
我会确保在您完成修改后立即致电 pm.makePersistent(participant)
-
我试过了,但似乎没有什么不同。在同一个会话中,我实际上从 3 个列表中删除了元素。只有在最后一个中,更改才会始终保持不变。
标签: java debugging google-app-engine