簡體   English   中英

Google App Engine-JDO-如何更新收藏集?

[英]Google App Engine - JDO - How to update collection?

嘗試使用JDO更新集合中的一個對象時遇到問題。

這是事實:

  • 我有一個類(我們將其稱為BigClass),該類具有包含ArrayList的嵌入式類(SmallClass)。
  • 我不使用/需要交易。
  • 我查詢數據庫以獲取應修改的BigClass項目列表。 我遍歷每個人。
  • 我從當前BigClass中嵌入的SmallClass的列表中刪除了一個元素,更改始終不會保留。
  • 如果我在更改后打印(記錄)對象,它看起來已修改,但是如果我檢查DataViewer,則該對象未更新。
  • 我什至嘗試在FieldClass SmallClass上的BigClass上使用JDOHelper.makeDirty,但仍然無法正常工作。

一些相關的代碼:

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); 在從list刪除smth后繼續更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM