JPA:何时清除或关闭容器管理的实体管理器?
JPA: when is a container-managed entity manager cleared or closed?
在application-managed场景中,如果entity manager会在一段时间内处于活动状态,则必须手动清除它,否则entity会堆积起来并可能吃掉大量的记忆。但是在 container-managed 应用程序中,何时清除或关闭持久性上下文?我在这里看到一个说法,它总是在交易结束时被清除:
https://en.wikibooks.org/wiki/Java_Persistence/Persisting#Clear
"For JTA managed EntityManagers the persistence context is automatically cleared across each JTA transaction boundary."
...但我找不到此声明的来源。
如果您想查看声明的来源,JPA specification 是您可以获得的最佳来源。这里声明:
After the JTA transaction has completed (either by transaction commit
or rollback), the container closes the entity manager by calling
EntityManager.close.
这是第 357 页,在第 "Container Responsibilities" 部分下。
在application-managed场景中,如果entity manager会在一段时间内处于活动状态,则必须手动清除它,否则entity会堆积起来并可能吃掉大量的记忆。但是在 container-managed 应用程序中,何时清除或关闭持久性上下文?我在这里看到一个说法,它总是在交易结束时被清除:
https://en.wikibooks.org/wiki/Java_Persistence/Persisting#Clear
"For JTA managed EntityManagers the persistence context is automatically cleared across each JTA transaction boundary."
...但我找不到此声明的来源。
如果您想查看声明的来源,JPA specification 是您可以获得的最佳来源。这里声明:
After the JTA transaction has completed (either by transaction commit or rollback), the container closes the entity manager by calling EntityManager.close.
这是第 357 页,在第 "Container Responsibilities" 部分下。