JPA Architecture
Java Persistence API는 비지니스 엔티티를 관계형 엔티티로 저장하는 소스이다.
이것은 Plain Old Java Object(POJO)를 어떻게 정의하고 관계가 있는 엔티티를 관리하는 방법을 보여준다.
Class Level Architecture
이 이미지는 클래스 레벨의 JPA를 보여준다.
아래 표는 아키텍쳐에 표시된 각 장치를 설명한다.
EntityManagerFactory : EntityManager의 팩토리 클래스이다. 여러개의 EntityManager 인스턴스를 생성하고 관리한다.
EntityManager : 이것은 인터페이스이고 객체에 대한 지속성 작업을 관리한다. 이것은 쿼리 인스턴스의 팩토리처럼 작동한다.
Entity : 엔티티는 데이터베이스 레코드에 저장되는 지속성 객체이다.
EntityTransaction : EntityManager와 일대일관계이다. 각 EntityManager의 작업들은 엔티티 트랜잭션 클래스에 의해 관리된다.
Persistence : 이 클래스는 EntityManagerFactory 인스턴스를 얻는 스태틱 메소드를 포함한다.
Query : 이 인터페이스는 각 JPA 벤더가 원하는 관계형 객체들을 얻기 위해 구현된다.
위 클래스와 인터페이스는 엔티티를 데이터베이스 레코드로 저장하는데 사용된다.
이들은 프로그래머가 데이터베이스에 저장하기 위해 코드를 작성하는 노력을 줄여주어, 그들로 하여금 더 중요한 활동(클래스와 데이터베이스 테이블을 매핑하는 코드작성)에 집중할 수 있게 해준다.
JPA Class Relationships
위 아키텍쳐에서 클래스와 인터페이스의 관계는 javax.persistence 패키지에 있다.
아래 다이어그램은 그들의 관계를 보여준다.
엔티티매니저팩토리와 엔티티매니저는 일대다 관계이다. (팩토리기준에서)
엔티티매니저와 엔티티 트랜잭션은 일대일 관계이다. 각 엔티티매니저의 작업에는 엔티티 트랜잭션 인스턴스이다.
엔티티매니저와 쿼리는 일대다 관계이다. 많은 수의 쿼리를 하나의 엔티티매니저 인스턴스에서 실행할 수 있다.
엔티티매니저와 엔티티는 일대다관계이다. 하나의 엔티티매니저 인스턴스는 여러개의 엔티티를 관리 할수 있다.
원문 : https://www.tutorialspoint.com/jpa/jpa_introduction.htm
(오역이 있을수 있으니 발견 시 댓글달아주세요!)