Damit Ihr Liberty-Profil eine Anwendung unterstützt, die
Java™ Persistence
API (JPA) verwendet, nehmen Sie das Feature
jpa-2.0 oder jpa-2.1 in die Datei
server.xml auf, je nachdem, welche Spezifikationsstufe Sie verwenden.
Sie müssen außerdem Persistenzkontexte und Persistenzeinheiten definieren und den Zugriff auf den EntityManager und die EntityManagerFactory konfigurieren.
Vorbereitende Schritte
Diese Task setzt voraus, dass Sie einen Liberty Profile-Server erstellt haben, auf dem
eine Anwendung implementiert werden soll, die JPA verwendet. Nähere Informationen hierzu finden Sie im Abschnitt
Liberty Profile-Server manuell erstellen.
Informationen zu diesem Vorgang
![[8.5.5.6 oder höher]](../ng_v8556.gif)
Im Liberty-Profil sind zwei JPA-Features verfügbar:
- Das Feature jpa-2.0 bietet Unterstützung für Anwendungen, die eine gemäß der Spezifikation JPA 2.0 geschriebene
anwendungsverwaltete und containergesteuerte JPA verwenden.Die Unterstützung basiert auf Apache OpenJPA mit Erweiterungen für die Unterstützung des containergesteuerten Programmiermodells.
- Das Feature jpa-2.1 bietet Unterstützung für Anwendungen, die eine gemäß der Spezifikation JPA 2.1 geschriebene
anwendungsverwaltete und containergesteuerte JPA verwenden. Die Unterstützung basiert auf EclipseLink.
Vorgehensweise
- Nehmen Sie das Feature jpa-2.0 oder jpa-2.1
in die Datei
server.xml auf.
- Nehmen Sie einen Persistenzkontext und eine Persistenzeinheit in die Datei
web.xml auf.
Beispiel:
<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>
- Konfigurieren Sie den Zugriff auf den EntityManager.
Beispiel:
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();
- Konfigurieren Sie den Zugriff auf die EntityManagerFactory.
Beispiel:
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();