在应用程序管理的方案中,如果某个实体管理器将在一段时间内处于活动状态,则必须手动将其清除,否则实体会堆积起来并有可能吞噬大量内存。但是在容器管理的应用程序中,何时清除或关闭持久性上下文?我在这里看到一个说法,它总是在交易结束时被清除:
https://en.wikibooks.org/wiki/Java_Persistence/Persisting#Clear
“对于JTA管理的EntityManager,将在每个JTA事务边界上自动清除持久性上下文。”
...但是我找不到该声明的来源。
答案 0 :(得分:1)
如果您想查看索赔的来源, JPA specification是您可以获得的最佳来源。声明如下:
JTA事务完成后(通过事务提交) 或回滚),容器通过调用来关闭实体管理器 EntityManager.close。
这是第357页的“容器责任”部分。