我正在使用资源本地实体管理器和JPA 1。创建
的EntityManager的最佳做法是什么每次创建工作关闭实体经理。(实体管理员不重,但仍然无聊)
为每个线程创建一个实体管理器并将其存储为ThreadLocal变量并使用它(a-应该关闭entitymanager b-会话范围bean中存储的任何实体都将是一个分离的实体,因为entitymanager其持久化上下文中的哪个实体现在关闭或属于另一个线程。)
将实体管理器存储在会话bean中并在会话期间使用相同的实体管理器(会话彼此不相同)
答案 0 :(得分:5)
您应该使用@PersistenceContext
注释注入EntityManager
。不要担心它来自哪里 - 这是工作中的依赖注入。
答案 1 :(得分:3)
我为每个请求创建EntityManagers并在ServletRequestListener
中关闭它们。