簡體   English   中英

jpa合並非托管實體

[英]jpa merge unmanaged entity

我想在另一個持久化上下文中管理一個非托管實體。 我讀到這可以通過合並來完成:

em.merge(user);

但是,如果我這樣做,它不會添加到上下文中:

boolean isManaged = em.contains(user);

總是假的。

即使我做了以下事情:

User dbuser = em.find(User.class, user.getId());
em.merge(user);
boolean isManaged = em.contains(user);

dbuser和用戶完全相同。

我究竟做錯了什么?

我正在使用JPA,MySql DB,JBoss EAP 6.1

調用entityManager.flush()將合並操作提交到數據庫中。

通常,提交會延遲。 例如,如果您的方法具有@TransactionAttribute注釋。 該方法完成后將提交該事務。 但是如果你在沒有提交的情況下調用em.contains(user) ,你就會得到舊的狀態。

暫無
暫無

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

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