Dav*_*ave 6 java mysql hibernate jpa
我想在另一个持久化上下文中管理一个非托管实体.我读到这可以通过合并来实现:
em.merge(user);
Run Code Online (Sandbox Code Playgroud)
但是,如果我这样做,它不会添加到上下文中:
boolean isManaged = em.contains(user);
Run Code Online (Sandbox Code Playgroud)
总是假的.
即使我做了以下事情:
User dbuser = em.find(User.class, user.getId());
em.merge(user);
boolean isManaged = em.contains(user);
Run Code Online (Sandbox Code Playgroud)
dbuser和用户完全相同.
我究竟做错了什么?
我正在使用JPA,MySql DB,JBoss EAP 6.1
调用entityManager.flush()以将合并操作提交到数据库中。
通常提交会被延迟。例如,如果您的方法有@TransactionAttribute注释。该方法完成后将提交事务。但如果你在em.contains(user)没有提交的情况下调用,你只会得到旧的状态。
| 归档时间: |
|
| 查看次数: |
1152 次 |
| 最近记录: |