尝试更新集合中的一个对象时遇到问题,
使用JDO。
这是事实:
我有一堂课(叫它
BigClass),具有嵌入式
class(SmallClass)包含一个
数组列表。
我不使用/需要交易。
我查询数据库以获取列表
应该是BigClass项目
改性。我遍历每个
他们。
我从列表中删除一个元素
嵌入在
当前的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);
删除smth
后,可能必须调用list
来保留更改。