Para habilitar el perfil Liberty para dar
soporte a una aplicación que utiliza JPA
(Java™ Persistence API), añada la
característica jpa-2.0 o jpa-2.1 en el archivo server.xml, dependiendo del nivel de especificación que necesite. También debe definir contextos de persistencia y unidades de
persistencia, y configurar el acceso al gestor de entidades y a la fábrica
de gestor de entidad.
Acerca de esta tarea
![[8.5.5.6 o posterior]](../ng_v8556.gif)
Hay dos características JPA disponibles en el perfil Liberty:
- La característica jpa-2.0 proporciona soporte para que las aplicaciones utilicen JPA gestionados por aplicación y gestionados por contenedor escritos según la especificación JPA 2.0. El soporte se crea sobre Apache OpenJPA con extensiones para dar soporte al modelo de programación gestionado por contenedor.
- La característica jpa-2.1 proporciona soporte para que las aplicaciones utilicen JPA gestionados por aplicación y gestionados por contenedor escritos según la especificación JPA 2.1. El soporte se basa en EclipseLink
Procedimiento
- Añada la característica jpa-2.0 o jpa-2.1 al archivo server.xml.
- Añada definiciones de contextos de persistencia y
unidades de persistencia en el archivo
web.xml.
Por ejemplo:
<persistence-context-ref>
<persistence-context-ref-name>example/em</persistence-context-ref-name>
<persistence-unit-name>ExamplePersistenceUnit</persistence-unit-name>
</persistence-context-ref>
<persistence-unit-ref>
<persistence-unit-ref-name>example/emf</persistence-unit-ref-name>
<persistence-unit-name>ExamplePersistenceUnit</persistence-unit-name>
</persistence-unit-ref>
- Configure el acceso al gestor de entidad.
Por ejemplo:
Context ctx = new InitialContext();
UserTransaction tran = (UserTransaction) ctx.lookup("java:comp/UserTransaction");
tran.begin();
EntityManager em = (EntityManager) ctx.lookup(java:comp/env/example/em");
Thing thing = new Thing();
em.persist(thing);
tran.commit();
- Configure el acceso a la fábrica de gestor de entidad.
Por ejemplo:
Context ctx = new InitialContext();
EntityManagerFactory emf = (EntityManager) ctx.lookup(java:comp/env/example/emf");
EntityManager em = emf.createEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
Thing thing = new Thing();
em.persist(thing);
tx.commit();
int id = thing.getId();
em.close();