从数据库同步entitymanager

时间:2009-10-27 17:09:59

标签: java hibernate jpa

我有一个使用entitymanager的swing桌面应用程序,但是当这个应用程序同时执行多次时,差异实体管理器会有其他人修改的旧数据,这些更改在下一个实体管理器之前都不可见。 ..如何在任何时候将entitymanager与数据库数据同步?

1 个答案:

答案 0 :(得分:2)

EntityManager个案不应长时间举行;相反,每个都应该用于unit of work并在之后丢弃。

也就是说,EntityManager有一个refresh()方法,您可以调用该方法从数据库中重新加载特定实体的状态。

它还有一个clear()方法,可以完全清除持久化上下文中的“旧”数据。但是,您需要小心谨慎 - 在没有flush()的情况下调用clear()会丢弃所有待处理的更新。