Liberty 프로파일이 JPA(Java™ Persistence API)를 사용하는 애플리케이션을 지원하게 하려면
필요한 스펙 레벨에 따라 jpa-2.0 또는 jpa-2.1 기능을 server.xml 파일에 추가하십시오.
지속성 컨텍스트 및 지속성 단위도 정의해야 하며, 엔티티 관리자 및 엔티티 관리자 팩토리에 대한 액세스도 구성해야 합니다.
이 태스크 정보
![[8.5.5.6 이상]](../ng_v8556.gif)
Liberty 프로파일에 사용 가능한 두 개의 JPA 기능이 있습니다.
- jpa-2.0 기능은 JPA 2.0 스펙에 기록된 애플리케이션 관리 및
컨테이너 관리 JPA를 사용하는 애플리케이션에 대한 지원을 제공합니다. 지원은 컨테이너 관리 프로그래밍 모델을 지원하기 위한 확장과 함께 Apache OpenJPA에 빌드되었습니다.
- jpa-2.1 기능은 JPA 2.1 스펙에 기록된 애플리케이션 관리 및 컨테이너 관리 JPA를 사용하는 애플리케이션을 지원합니다.
지원은 EclipseLink에 빌드됩니다.
프로시저
- 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 = (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();