Tengo un EntityManagerFactory
para el que puedo crear uno (o varios) EntityManager
instancias. Estoy usando un entorno Servlet y tengo una EntityManagerFactory conectada al servlet (a través del contexto de servlet) que se comparte durante la vida útil del servlet (y, por lo tanto, para todos los usuarios).¿Con qué frecuencia debería crear un EntityManager?
que pueda hacer uno de los siguientes:
- crear una sola EntityManager durante toda la vida de mi servlet (por ejemplo, compartida entre todos los usuarios)
- Crear una por usuario (por lo que cada usuario tiene su propio la HttpSession)
- Crear una por cada petición HTTP (por ejemplo, creando una instancia de una nueva y cerrándola al final de un método
doGet
)
¿Cuál es el más apropiado? ¿Es significativo el costo de crear un EntityManager? Si hago un solo EntityManager compartido, ¿hay un ámbito de transacción único (es decir, las actualizaciones entre usuarios independientes podrían comprometer otros cambios)?
De acuerdo. Sugeriría totalmente que utilice un marco de integración como EJB 3 o Spring Framework, que eliminará la carga de la administración de EntityManager. –