创建entitymanager的最佳实践

时间:2011-06-20 16:41:23

标签: java hibernate jsf jpa

我正在使用资源本地实体管理器和JPA 1。创建

的EntityManager的最佳做法是什么
  1. 每次创建工作关闭实体经理。(实体管理员不重,但仍然无聊)

  2. 为每个线程创建一个实体管理器并将其存储为ThreadLocal变量并使用它(a-应该关闭entitymanager b-会话范围bean中存储的任何实体都将是一个分离的实体,因为entitymanager其持久化上下文中的哪个实体现在关闭或属于另一个线程。)

  3. 将实体管理器存储在会话bean中并在会话期间使用相同的实体管理器(会话彼此不相同)

2 个答案:

答案 0 :(得分:5)

您应该使用@PersistenceContext注释注入EntityManager。不要担心它来自哪里 - 这是工作中的依赖注入。

答案 1 :(得分:3)

我为每个请求创建EntityManagers并在ServletRequestListener中关闭它们。