2012-02-05 26 views

回答

13

是的,管理從.getResultList()返回的對象。

當您對管理對象進行更改時,您不必擔心合併,因爲這些更改將自動被EntityManager選取。

當用於加載該對象的EntityManagerclose(),clear()detach()時,被管理對象將會分離。分離的對象不再被管理,您應該合併,讓EntityManager接受更改。

+0

非常感謝。我認爲他們會被依附,但似乎他們被分離。事實證明,我錯誤地創建了第二個EntityManager,因此它似乎被分離了。 – 2012-03-14 21:58:59

+0

您是否必須.commit()更改或者是否也是自動的? – user2130951 2014-03-06 16:59:07

+0

我認爲這是自動的,但不應該這樣做。 – 2014-03-17 14:19:43

2

根據我的經驗,getResultList()返回值是Attached。也就是說,如果您在同一個事務中對它們進行修改,則不必手動持久化它們。

2

如果您目前處於交易中,它們將被管理,但如果您不是(例如,如果您使用TransactionAttributeType.NOT_SUPPORTED或TransactionAttributeType.NEVER註釋了您的trnasction),則您的實體將不受管理。

相關問題