JPA (Java Persistence API) 기능 개요
애플리케이션에 사용할 수 있는 JPA 기능에는 세 가지가 있습니다. jpa-2.0은 Apache OpenJPA 개방형 소스 프로젝트로 빌드되었습니다. jpa-2.1 및 jpa-2.2는 EclipseLink 개방형 소스 프로젝트로 빌드되었습니다.
JPA를 사용하여 마이크로서비스용 데이터베이스에 데이터를 액세스하고 지속하는 방법에 대한 최신 정보는 마이크로서비스 안내서의 데이터 액세스 및 지속을 참조하십시오.
jpa-2.0
WebSphere Application Server 용 JPA (Java™ Persistence API) 2.0 은 Apache OpenJPA 2.2.x 오픈 소스 프로젝트에서 빌드됩니다.
Apache OpenJPA는 JPA 1.0 및 2.0 스펙을 준수하는 구현입니다. OpenJPA 를 기본 구현으로 사용하는 WebSphere® Application Server 는 확장을 사용하여 WebSphere Application Server 고객에게 더 많은 기능 및 유틸리티를 제공합니다. WebSphere Application Server 용 JPA는 OpenJPA, 에서 구축되었기 때문에, OpenJPA 의 모든 기능, 확장 기능, 구성은 WebSphere Application Server 확장 기능의 영향을 받지 않습니다. WebSphere Application Server에서 이러한 애플리케이션을 사용하기 위해 OpenJPA 애플리케이션을 변경할 필요가 없습니다.
JPA for WebSphere Application Server는 보다 우수한 호환성을
제공합니다. JPA for WebSphere Application Server에는 응용프로그램
개발 및 전개를 위한 도구 세트가 포함됩니다. WebSphere Application Server 용 JPA의 기타 기능에는 DB2®Optim pureQuery Runtime, DB2 최적화, JPA 액세스 목적, 향상된 추적 기능, 명령 스크립트 및 변환된 메시지 파일에 대한 지원이 포함됩니다. 이 제품의 JPA 제공자는
com.ibm.websphere.persistence.PersistenceProviderImpl입니다.
Apache OpenJPA는 지속적 환경을 구성하기 위한 특성 사용으로 지원합니다. openjpa 또는 wsjpa 접두부를 사용하여 WebSphere Application Server 용 JPA 특성을 지정할 수 있습니다. openjpa 및 wsjpa 접두부는 공통 특성 세트에 대해
혼합하여 사용할 수 있습니다. 이 규칙에 대한 예외는 wsjpa 접두부를 사용하는 wsjpa 특정 구성 특성입니다. WebSphere Application Server용 JPA 특정 특성이 openjpa 접두부와 함께 사용되는 경우 문제가 되는 특성이 wsjpa 특성으로 처리됨을 나타내는 경고 메시지가 로그됩니다. openjpa 접두부에는 이와 반대의 경우가 성립되지 않습니다. 이 경우에는 위반 특성이 무시됩니다.
jpa-2.0 기능이 안정화되었습니다. jpa-2.0 기능을 계속 사용할 수 있습니다. 하지만 후속 JPA 기능을
사용하는 것을 고려해 보십시오.jpa-2.1
WebSphere Application Server 용 JPA (Java Persistence API) 2.1 은 EclipseLink 오픈 소스 프로젝트에서 빌드됩니다. EclipseLink는 모든 JPA 스펙 버전의 참고 구현입니다. 이 제품의 JPA 제공자는
org.eclipse.persistence.jpa.PersistenceProvider입니다.
JPA 2.1 스펙에는 JPA 2.0 스펙에서 사용할 수 없는 새 기능이 추가되었습니다. 이러한 기능에는 다음 항목이 포함됩니다.
- 스키마 생성
- 유형 변환 메소드
- 조회 및 찾기 조작의 엔티티 그래프
- 동기화되지 않은 지속적 컨텍스트
- 스토어드 프로시저 호출
- 엔티티 리스너 클래스로의 인젝션
- JPQL 개선사항
- 기준 API 개선사항
- 기본 조회의 맵핑
이러한 기능에 대한 자세한 정보는 JPA 2.1 스펙 을 참조하십시오. 이 제품은 EclipseLink API의 서브세트 또한 제공합니다. 세부사항은 Liberty 기능 페이지, Java Persistence API 2.1을 참조하십시오.
jpa-2.2
WebSphere Application Server 용 JPA (Java Persistence API) 2.2 는 EclipseLink 오픈 소스 프로젝트에서 빌드됩니다. EclipseLink는 모든 JPA 스펙 버전의 참고 구현입니다. 이 제품의 JPA 제공자는
org.eclipse.persistence.jpa.PersistenceProvider입니다.
JPA를 사용하여 마이크로서비스용 데이터베이스에 데이터를 액세스하고 지속하는 방법에 대한 최신 정보는 마이크로서비스 안내서의 데이터 액세스 및 지속을 참조하십시오.
JPA 기능 호환성
jpa-2.0jpa-2.0기능은 JPA 2.0 스펙 구현이며 Apache OpenJPA를 기반으로 합니다. 이 기능은 Java Platform, Enterprise Edition(Java EE) 6 기술군의 일부이지만 다른 Java EE 7 기능과 호환되므로 특별합니다. 예를 들어, Java EE 7 기능인servlet-3.1기능은jpa-2.0기능과 함께 사용됩니다. 이는 애플리케이션이 기존 JPA 제공자를 유지하면서도 새 Java EE 7 기능을 사용할 수 있도록 해 줍니다.jpa-2.1jpa-2.1기능은 JPA 2.1 스펙 구현이며 EclipseLink를 기반으로 합니다. 이 기능은 다른 Java EE 7 기능하고만 호환됩니다.jpa-2.1기능이 다른 Java EE 6 기능과 함께 사용되면 다음 오류가 message.log 파일에 생성됩니다.CWWKF0033E: 싱글톤 기능 com.ibm.websphere.appserver.javaeeCompatible-7.0 및 com.ibm.websphere.appserver.javaeeCompatible-6.0은 동시에 로드될 수 없습니다. 구성된 기능 jpa-2.1 및 servlet-3.0에 충돌을 일으키는 하나 이상의 기능이 포함되어 있습니다. 사용자의 구성이 지원되지 않습니다. server.xml을 업데이트하여 호환되지 않는 기능을 제거하십시오.