JPA(Java Persistence API) 아키텍처

데이터 지속은 애플리케이션 실행 간 데이터를 유지하는 기능입니다. 지속성은 관계형 데이터베이스에 대한 필수 액세스로 인해 엔터프라이즈 애플리케이션에 중요합니다. 이 환경에 개발되는 애플리케이션은 자체적으로 지속성을 관리하거나 써드파티 솔루션을 사용하여 지속성에 대한 데이터베이스 업데이트 및 검색을 처리해야 합니다. JPA(Java™ Persistence API)는 EJB 스펙의 지속성 및 오브젝트 관계형 맵핑과 함수를 관리하는 메커니즘을 제공합니다.

JPA 스펙은 벤더 특정 맵핑 구현에 의존하지 않고 오브젝트-관계형 맵핑을 내부적으로 정의합니다. JPA는 Java EE 환경에 적용되는 Java 프로그래밍 모델을 기반으로 하지만 JPA는 애플리케이션 기능을 테스트하기 위해 Java EE 환경에서 작동할 수 있습니다.

JPA는 지속성 프로그래밍 모델의 단순화를 나타냅니다. JPA 스펙은 벤더 특정 맵핑 구현에 의존하지 않고 오브젝트-관계형 맵핑을 명시적으로 정의합니다. JPA는 어노테이션 또는 XML을 사용하여 하나 이상의 데이터베이스 테이블로 오브젝트를 맵핑함으로써 오브젝트 관계형 맵핑의 중요한 태스크를 표준화합니다. 지속성 프로그래밍 모델을 보다 단순화하려면 다음을 수행하십시오.
  • EntityManager API는 데이터베이스의 오브젝트를 지속시키거나 업데이트, 검색 또는 제거할 수 있습니다.
  • EntityManager API 및 오브젝트-관계형 맵핑 메타데이터는 지속성을 유지보수하기 위해 JDBC 또는 SQL 코드를 작성하지 않고 대부분의 데이터베이스 조작을 처리합니다.
  • JPA는 작업 중인 데이터베이스에 고유한 SQL 조회를 작성하지 않고 오브젝트를 검색하는 데 사용할 수 있는 조회 언어를 제공합니다. 이 언어는 독립적인 EJB 조회 언어(JPQL이라고도 함)를 확장합니다.

JPA는 Java EE(Java Enterprise Edition) 컨테이너의 내부와 외부 모두에서 작동하도록 설계됩니다. JPA를 컨테이너 내부에서 실행하는 경우 애플리케이션은 해당 컨테이너를 사용하여 지속성 컨텍스트를 관리할 수 있습니다. JPA를 관리할 수 있는 컨테이너가 없는 경우 애플리케이션이 직접 지속성 컨텍스트 관리를 처리해야 합니다. 컨테이너 관리 지속에 대해 설계된 애플리케이션에는 지속성을 처리하기 위해 많은 코드 구현이 필요하지 않지만 이러한 애플리케이션은 컨테이너 외부에서 사용할 수 없습니다. 자체 지속성을 관리하는 애플리케이션은 컨테이너 환경 또는 Java SE 환경에서 작동할 수 있습니다.

EJB 3.x 프로그래밍 모델을 지원하는 Java EE 컨테이너는 지속성 제공자라고도 부르는 JPA 구현을 지원해야 합니다. JPA 지속성 제공자는 다음 요소를 사용하여 EJB 3.x 환경에서 보다 쉽게 지속성을 관리할 수 있습니다.
지속 단위
엔티티 클래스 오브젝트와 관계형 데이터베이스의 관계를 설명하는 선언 메타데이터로 구성됩니다. EntityManagerFactory는 이 데이터를 사용하여 EntityManager를 통해 액세스할 수 있는 지속성 컨텍스트를 작성합니다.
EntityManagerFactory
데이터베이스 상호작용을 위한 EntityManager를 작성하는 데 사용됩니다. 애플리케이션 서버 컨테이너는 일반적으로 이 함수를 제공하지만, JPA 애플리케이션 관리 지속성을 사용하는 경우 EntityManagerFactory가 필요합니다. EntityManagerFactory 인스턴스는 지속성 컨텍스트를 나타냅니다.
지속성 컨텍스트
애플리케이션이 현재 조작하는 활성 인스턴스 세트를 정의합니다. 지속성 컨텍스트는 수동으로 또는 주입을 통해 작성할 수 있습니다.
EntityManager
애플리케이션이 사용하는 엔티티 오브젝트의 활성 콜렉션을 유지보수하는 자원 관리자. EntityManager는 오브젝트-관계형 맵핑의 데이터베이스 상호작용 및 메타데이터를 처리합니다. EntityManager 인스턴스는 지속성 컨텍스트를 나타냅니다. 컨테이너의 애플리케이션은 애플리케이션의 인젝션을 통하거나 Java 컴포넌트 네임스페이스에서 찾아 EntityManager를 얻을 수 있습니다. 애플리케이션이 해당 지속성을 관리하는 경우 EntityManager는 EntityManagerFactory에서 얻습니다.
주의: EntityManager 인젝션은 다음 아티팩트에만 지원됩니다.
  • EJB 3.x 세션 Bean
  • EJB 3.x 메시지 구동 Bean
  • 서블릿, 서블릿 필터 및 리스너
  • 인터페이스 javax.servlet. jsp.tagext.Tag 및 javax.servlet.jsp.tagext.SimpleTag를 구현하는 JSP 태그 핸들러
  • JSF(JavaServer Faces) 관리 Bean
  • 애플리케이션 클라이언트의 기본 클래스
엔티티 오브젝트
가장 간단한 양식으로 데이터베이스 테이블의 행을 나타내는 단순 Java 클래스. 엔티티 오브젝트는 concrete 클래스 또는 abstract 클래스입니다. 이 클래스는 특성 또는 필드를 사용하여 상태를 유지합니다.

주제 유형을 표시하는 아이콘 개념 주제



시간소인 아이콘 마지막 업데이트 날짜: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cejb_persistence
파일 이름:cejb_persistence.html