我正在使用EJB3,我遇到了与刷新EntityManager
相关的问题。
问题在于我的应用程序必须准备好供很多人使用,但是如果一个人更新同一个日期,那么EntityManager
并不是那个行,并且它看不到其他人在x之后所做的更改分钟。
当我进行“选择”,“插入”,“更新”或“删除”时,是否有人知道如何刷新EntityManager
?
答案 0 :(得分:0)
尝试刷新实体。例如:
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);
}
希望这有帮助。
答案 1 :(得分:0)
这是一个并发问题,您应该阅读有关锁定和并发的JPA Specification部分3.4。这包括乐观和悲观锁定以及版本化属性的使用。
另外,第3.2.5节介绍了如何刷新实体实例。