我有一个使用entitymanager的swing桌面应用程序,但是当这个应用程序同时执行多次时,差异实体管理器会有其他人修改的旧数据,这些更改在下一个实体管理器之前都不可见。 ..如何在任何时候将entitymanager与数据库数据同步?
答案 0 :(得分:2)
EntityManager
个案不应长时间举行;相反,每个都应该用于unit of work并在之后丢弃。
也就是说,EntityManager
有一个refresh()
方法,您可以调用该方法从数据库中重新加载特定实体的状态。
它还有一个clear()
方法,可以完全清除持久化上下文中的“旧”数据。但是,您需要小心谨慎 - 在没有flush()
的情况下调用clear()
会丢弃所有待处理的更新。