我正在使用 EJB3,但在刷新EntityManager
.
问题是我的应用程序必须准备好供许多人使用,但是如果一个人更新同一日期,EntityManager
则不会阻塞该行,并且它看不到其他人在 x 分钟后所做的更改。
EntityManager
当我执行“选择”、“插入”、“更新”或“删除”时,有人知道如何刷新吗?
尝试刷新实体。例如:
public void create(MyEntity entity) {
getEntityManager().persist(entity);
getEntityManager().flush();
getEntityManager().refresh(entity);
}
public void edit(MyEntity entity) {
getEntityManager().merge(entity);
getEntityManager().flush();
getEntityManager().refresh(entity);
}
希望这可以帮助。
这是一个并发问题,您应该阅读JPA 规范第 3.4 节关于锁定和并发的内容。这包括乐观和悲观锁定以及版本化属性的使用。
此外,第 3.2.5 节还介绍了如何刷新实体实例。