Liberty가 JPA(Java™ Persistence API)를 사용하는
애플리케이션을 지원하게 하려면 필요한 스펙 레벨에 따라
jpa-2.0 또는 jpa-2.1 기능을
server.xml 파일에
추가하십시오. 지속성 컨텍스트 및 지속성 단위도 정의해야 하며, 엔티티 관리자 및 엔티티 관리자 팩토리에 대한 액세스도 구성해야 합니다.
시작하기 전에
이 태스크는 Liberty 서버를 작성했으며 JPA를 사용하는
애플리케이션을 여기에 배치하려는 것으로 가정합니다.
수동으로 Liberty 서버 작성을 확인하십시오.
이 태스크 정보
Liberty에 사용 가능한 두 개의 JPA 기능이
있습니다.
- jpa-2.0 기능은 JPA 2.0 스펙에 기록된 애플리케이션 관리 및
컨테이너 관리 JPA를 사용하는 애플리케이션에 대한 지원을 제공합니다. 지원은 컨테이너 관리 프로그래밍 모델을 지원하기 위한 확장과 함께 Apache OpenJPA에 빌드되었습니다.
- jpa-2.1 기능은 JPA 2.1 스펙에 기록된 애플리케이션 관리 및 컨테이너 관리 JPA를 사용하는 애플리케이션을 지원합니다.
지원은 EclipseLink에 빌드됩니다.
WebSphere Developer Tools를 사용하여 JPA 애플리케이션을 개발하는 데 대한 정보는 Developing JPA applications를 참조하십시오.
프로시저
- server.xml 파일에 jpa-2.0 또는 jpa-2.1 기능 추가를 수행하십시오.
- 지속성 컨텍스트 및 지속성 단위 정의를 web.xml 파일에 추가하십시오.
예:
<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>
- 엔티티 관리자에 대한 액세스를 구성하십시오.
예:
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();
- 엔티티 관리자 팩토리에 대한 액세스를 구성하십시오.
예:
Context ctx = new InitialContext();
EntityManagerFactory emf = (EntityManagerFactory) 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();