2011-05-27 22 views

Respuesta

15

La documentación dice todo:

LocalContainerEntityManagerFactoryBean - Desde el enlace: FactoryBean que crea una APP EntityManagerFactory según la norma contrato de arranque contenedor de APP.

LocalEntityManagerFactoryBean - Desde el enlace: FactoryBean que crea una APP EntityManagerFactory según la norma contrato de arranque autónomo de APP.

Básicamente, la única diferencia está en cómo crean el JPA EntityManagerFactory.

+2

Todavía estoy confundir entre el contenedor y el independiente. ¿Alguna referencia que pueda leer? – huahsin68

+1

@ huahsin68 Quizás esta respuesta arroje algo de luz para usted: http://stackoverflow.com/a/28998110/814702 – informatik01

14

LocalEntityManagerFactoryBean

es el más simple y el más limitado. No puede hacer referencia a una definición de bean DataSource JDBC existente y no existe soporte para transacciones globales.

LocalContainerEntityManagerFactoryBean

es el más potente opción de configuración JPA , permitiendo la configuración local flexible dentro de la aplicación. Es compatible con los enlaces a un origen de datos JDBC existente, soporta tanto las transacciones locales y globales

REF: primavera-marco-reference.pdf "Primavera 3"

10

LocalEntityManagerFactoryBean produce un EntityManagerFactory gestionados por la aplicación.

LocalContainerEntityManagerFactoryBean produce un contenedor EntityManagerFactory.

Ref: Primavera en Acción - Craig Paredes

27

Básicamente APP especificación definedos tipos de gestores de entidad. Ellos son:

i) Administrado por la aplicación: Administrador de entidades gestionadas de la aplicación significa "Los gestores de la entidad se crean y administran simplemente mediante la aplicación (es decir, nuestro código)".

ii) gestionada por contenedor: Contenedor de gestor de la entidad Gestionado significa "responsables de la Entidad son creados y gestionados por más que el contenedor J2EE (es decir, nuestro código no gestiona directamente en lugar gestores de entidad se crean y administran por contenedor, y nuestros códigos obtiene EM de alguna manera, como usar JNDI).

Nota: creado y gestionado (arriba) significa "apertura, el cierre y la participación de gestor de la entidad en las transacciones"

LocalContainerEntityManagerFactoryBean - contenedor logró
LocalEntityManagerFactoryBean - aplicación administrada

A Big Nota: Para aplicaciones basadas en resorte, la diferencia no es mucho. primavera sólo juega un papel (como contenedor si configura LocalContainerEntityManagerFactoryBean y como aplicación si configura LocalEntityManagerFactoryBean)

3

La especificación JPA define dos tipos de gestores de entidad:

  • Administrado por la aplicación -Entity manager se crean w Cuando una aplicación directamente solicita una de una fábrica de administrador de entidades. Con los administradores de la entidad administrada por aplicación , la aplicación es responsable de abrir o cerrar gerentes de entidad e involucrar al gerente de entidad en las transacciones. Este tipo de administrador de entidad es más apropiado para su uso en aplicaciones independientes que no se ejecutan en un contenedor Java EE .

  • de contenedores gestionados -entidad gerentes son creados y gestionados por un contenedor Java EE. La aplicación no interactúa con la fábrica del administrador de entidades al . En cambio, los administradores de entidades se obtienen directamente a través de inyección o desde JNDI. El contenedor es responsable de configurar las fábricas del administrador de entidades. Este tipo de administrador de entidades es el más apropiado para ser utilizado por un contenedor Java EE que desea mantener cierto control sobre la configuración de JPA más allá de lo especificado en persistence.xml.

Aplicación gestionadosEntityManagers son creados por un EntityManagerFactory obtenido mediante una llamada al método de la PersistenceProvider createEntityManagerFactory(). Mientras tanto, administrado por contenedor EntityManagerFactorys se obtienen a través del método createContainerEntityManagerfactory() de PersistenceProvider.

Cada sabor de la fábrica gestor de la entidad es producida por un grano de fábrica del resorte correspondiente:

  • LocalEntityManagerFactoryBean produce un Entidad- ManagerFactory gestionados por la aplicación.

  • LocalContainerEntityManagerFactoryBean produce un recipiente gestionados EntityManagerFactory

Es importante señalar que la elección hecha entre una aplicación gestionados EntityManagerFactory y un recipiente gestionados EntityManagerFactory es completamente transparente a un resorte de base solicitud. Cuando trabaje con Spring y JPA, los detalles intrincados de tratar con cualquier forma de EntityManagerFactory están ocultos, dejando su código de acceso a datos para enfocarse en su verdadero propósito: el acceso a los datos.

La única diferencia real entre aplicación gestionados y gestionada por contenedor fábricas gestor de la entidad, en lo que se refiere a la primavera, es cómo cada uno está configurado en el contexto de aplicación de primavera.

+0

Sería bueno mencionar la fuente: [_ ** Spring in Action ** _] (https: //www.manning.com/books/spring-in-action-fourth-edition). – informatik01

Cuestiones relacionadas