【发布时间】:2009-10-27 17:09:59
【问题描述】:
我有一个使用 entitymanagerfactory 的摇摆桌面应用程序,但是当这个应用程序同时执行多次时,不同的实体管理器有旧数据被其他人修改,并且这些更改在下一个 entitymanagerfactory 之前不会可见。 .. 实体管理器如何随时与数据库数据同步??
【问题讨论】:
我有一个使用 entitymanagerfactory 的摇摆桌面应用程序,但是当这个应用程序同时执行多次时,不同的实体管理器有旧数据被其他人修改,并且这些更改在下一个 entitymanagerfactory 之前不会可见。 .. 实体管理器如何随时与数据库数据同步??
【问题讨论】:
EntityManager 实例不应被长时间持有;相反,每个都应该用于unit of work,然后丢弃。
也就是说,EntityManager 有一个 refresh() 方法,您可以调用该方法从数据库中重新加载特定实体的状态。
它还有一个clear() 方法,可以完全清除“旧”数据的持久性上下文。不过,您需要小心 - 调用 clear() 而不使用 flush() 将丢弃所有待处理的更新。
【讨论】: