尝试更新集合中的一个对象时遇到问题,
使用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来保留更改。

07-26 02:45