Una larga pregunta, por favor tengan paciencia conmigo.Inyectando EntityManager vs. EntityManagerFactory
Estamos utilizando Spring + JPA para una aplicación web. Mi equipo está debatiendo sobre inyectar EntityManagerFactory
en el GenericDAO
(un DAO basado en Generics algo en las líneas proporcionadas por APPFUSE, no usamos JpaDaosupport
por algún motivo) sobre la inyección de un EntityManager
. Estamos usando "persistencia administrada por la aplicación".
Los argumentos en contra de la inyección de un EntityManagerFactory
es que es demasiado pesado y por lo tanto no se requiere, la EntityManager
hace lo que necesitamos. Además, como Spring crearía una nueva instancia de un DAO para cada solicitud web (lo dudo) no habrá problemas de concurrencia ya que en la misma instancia EntityManager
se comparten dos subprocesos.
El argumento para inyectar EFM es que es una buena práctica sobre todo siempre es bueno tener un control para una fábrica.
No estoy seguro de cuál es el mejor enfoque, ¿alguien puede por favor aclararme?
Entiendo además que cuando Spring inyecta el EntityManager es "persistencia gestionada por contenedor" y también que Spring "hace" que el subproceso de Entitymanagers sea seguro. SB –