번들 내 JPA를 사용하여 데이터 액세스

이 태스크 정보

번들 내부에서 JPA를 사용하여 데이터에 액세스하는 경우 서버에서 Java™ EE 모듈로 처리되는 번들에서 작업 중이라고 가정합니다. 예를 들어 JPA 패싯이 사용되고 JPA를 사용하여 데이터에 액세스하고 데이터를 이용 및 표시하기 위해 엔티티 및 논리를 포함하는 OSGi 웹 애플리케이션 번들이 있습니다. 또 다른 예로는, EAR 배치의 일부가 아닌 OSGi 애플리케이션에 공개된 JPA를 사용하여 데이터를 이용하는 JPA 엔티티 및 논리를 포함하는 웹 프로젝트가 있습니다.

JPA 지속성 단위에 액세스하려면 OSGi 번들을 구성하고 WebSphere® Application Server에 데이터 소스를 추가해야 합니다.

팁:

JPA 지속성 파일이 JTA(Java Transaction API) 및 비JTA 데이터 소스에 대한 참조를 포함하는지 확인하십시오.

JPA에는 데이터 소스에 액세스하기 위한 두 가지 트랜잭션 패턴이 있습니다.
jta-data-source
JTA(Java Transaction API) 자원 패턴은 글로벌 트랜잭션에 따라 다릅니다. JTA 자원 패턴은 일반적으로 EJB(Enterprise JavaBeans) 세션 Facade의 범위 내에서 사용됩니다. 이 구성에서는 JPA에서 지속성 맵핑을 처리하는 동안 세션 Bean에서 트랜잭션 및 보안 컨텍스트를 제어할 수 있습니다. 이러한 경우 애플리케이션은 EntityTransaction 인터페이스를 사용하지 않지만 액세스 시 글로벌 트랜잭션에 등록된 EntityManager에 의존합니다.
non-jta-data-source
비JTA 자원 패턴은 글로벌 트랜잭션이 없을 경우 단일 자원을 처리하는 데 사용됩니다. 비JTA 자원 패턴은 일반적으로 웹 애플리케이션 또는 애플리케이션 클라이언트 범위에서 사용됩니다. 애플리케이션은 EntityTransaction 인터페이스를 사용하여 데이터 소스 관련 트랜잭션을 제어합니다.

OSGi 애플리케이션에 대한 persistence.xml 파일의 경우 jta-data-sourcenon-jta-data-source 요소는 JNDI(Java Naming and Directory Interface) 검색, 서비스 레지스트리에 대한 JNDI 검색 또는 Blueprint를 통해 데이터 소스에 액세스합니다.

JTA 및 비JTA 데이터 소스가 persistence.xml 파일에 구성되지 않은 경우 서버에 구성된 기본 JTA 및 비JTA 데이터 소스가 사용됩니다. 기본적으로 값은 null입니다. 일부 JPA 엔티티 기능에서는 비JTA 데이터 소스를 지정해야 합니다. 예를 들어 자동 엔티티 ID 생성이 이에 해당됩니다.

프로시저

  1. persistence.xml에 비JTA 데이터 소스를 추가하십시오.
    1. 편집기에서 persistence.xml을 여십시오.
    2. 개요 섹션에서 컴포넌트 목록을 보고 엔티티의 세부사항을 표시할 엔티티를 선택하십시오.
    3. 비JTA 데이터 소스 필드에서 비JTA 데이터 소스의 글로벌 JNDI 이름을 입력하십시오. 예를 들어 다음과 같습니다. osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/blogdbnojta).
  2. persistence.xml에 JTA 데이터 소스를 추가하십시오.
    1. 편집기에서 persistence.xml을 여십시오.
    2. 개요 섹션에서 컴포넌트 목록을 보고 엔티티의 세부사항을 표시할 엔티티를 선택하십시오.
    3. JTA 데이터 소스 필드에서 JTA 데이터 소스의 글로벌 JNDI 이름을 입력하십시오. 예를 들어 다음과 같습니다. osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/blogdb).
  3. WebSphere Application Server 관리 콘솔에 JDBC 제공자를 추가하십시오.
    1. 서버 보기로 전환하십시오.
    2. 서버 인스턴스를 마우스 오른쪽 단추로 클릭하고 시작을 선택하십시오.
    3. 서버 인스턴스를 마우스 오른쪽 단추로 클릭하고 관리 > 관리 콘솔 실행을 선택하여 관리 콘솔을 여십시오.
    4. 자원 > JDBC > JDBC 제공자를 클릭하십시오.
    5. JDBC 제공자 페이지에서 새로 작성을 클릭하십시오. 데이터 소스 작성 마법사가 열립니다.
    6. 마법사의 지시사항에 따라 JDBC 제공자를 작성하십시오.
    7. 변경사항을 저장하십시오.
  4. WebSphere Application Server 관리 콘솔에 데이터 소스 정의를 추가하십시오.
    1. 관리 콘솔에서 자원 > JDBC > 데이터 소스를 클릭하여 콘솔에서 데이터 소스 페이지를 여십시오.
    2. 데이터 소스 페이지에서 새로 작성을 클릭하고 persistence.xml에 지정된 JTA 연결 정의로 JNDI 이름이 설정된 데이터 소스 정의를 작성하십시오. 예를 들어 다음과 같습니다. jdbc/blogdb.
    3. 데이터 소스 페이지에서 새로 작성을 클릭하고 persistence.xml에 지정된 비JTA 연결 정의로 JNDI 이름이 설정된 다른 데이터 소스 정의를 작성하십시오. 예를 들어 다음과 같습니다. jdbc/blogdbnojta.
    4. 비JTA 연결에 대한 데이터 소스가 작성된 경우 관리 콘솔의 데이터 소스 페이지에서 비JTA 연결에 대한 정의를 클릭하십시오. 구성 페이지가 열립니다.
    5. 추가 특성 섹션에서 WebSphere Application Server 데이터 소스 특성을 클릭하십시오.
    6. 비트랜잭션 데이터 소스를 선택하십시오. 애플리케이션 서버에서 <non-jta-data-source> 요소를 사용하려면 비트랜잭션 데이터 소스에 대한 특수 구성이 필요합니다. 애플리케이션 서버에 대해 구성된 데이터 소스<non-jta-data-source>로 작동하지 않습니다. 애플리케이션 서버에서 구성된 모든 데이터 소스는 현재 트랜잭션 컨텍스트에 자동으로 가입되기 때문입니다. 이 자동 가입을 방지하려면 데이터 소스 사용자 정의 특성 nonTransactionalDataSource=true를 추가하십시오.

결과

persistence.xml 및 WebSphere Application Server는 OSGi 번들에서 JPA에 액세스하도록 구성됩니다.
주제 유형을 표시하는 아이콘 태스크 주제
Information Center의 이용 약관 | 피드백

시간소인 아이콘 마지막 업데이트 날짜: 2014-05-22

파일 이름: taccessjpainbundle.html