在使用JPA(Hibernate)时运行一些内存限制我正在寻找有关EntityManager如何处理分离实体的一些信息,特别是他是否保留对它们的任何强引用。
我正在搜索一般的JPA文档以及Hibernate文档,但找不到任何具体信息?从我得到的EntityManager.clear()将分离所有实体并使它们可用于垃圾收集。这是否意味着从EntityManager中分离实体使其可用于垃圾收集器?如果没有,如何使由Entitymanager管理的特定实体可用于GC?
答案 0 :(得分:1)
Hibernate不引用分离的实体。如果它被托管实体实例引用,它可能被Hibernate间接引用,但是在清除会话之后,将没有托管实例。
实际上,清除会话以释放内存是batch processing的官方文档模式。