12.5. Jakarta Persistence EntityManager


Jakarta Persistence 엔터티 관리자는 지속성 컨텍스트에 대한 연결을 나타냅니다. 엔터티 관리자를 사용하여 지속성 컨텍스트에서 정의한 데이터베이스에 대해 읽고 쓸 수 있습니다.

지속성 컨텍스트는 javax.persistence 패키지의 Java 주석 @PersistenceContext 를 통해 제공됩니다. 엔터티 관리자는 Java 클래스 javax.persistence.EntityManager 를 통해 제공됩니다. 관리 빈에서 EntityManager 인스턴스는 다음과 같이 삽입할 수 있습니다.

예제: 엔터티 관리자 주입

@Stateless
public class UserBean {
    @PersistenceContext
    EntityManager entitymanager;
    ...
}
Copy to Clipboard Toggle word wrap

12.5.1. Application-Managed EntityManager

애플리케이션 관리 엔터티 관리자는 기본 지속성 프로바이더인 org.hibernate.jpa.HibernatePersistenceProvider 에 직접 액세스할 수 있습니다. 애플리케이션 관리 엔터티 관리자의 범위는 애플리케이션이 생성되고 애플리케이션에서 종료될 때까지 지속될 때의 범위입니다. @PersistenceUnit 주석을 사용하여 애플리케이션 관리 엔터티 관리자를 반환하는 javax.persistence.EntityManagerFactory 인터페이스에 지속성 유닛을 삽입할 수 있습니다.

애플리케이션이 특정 지속성 유닛의 EntityManager 인스턴스 전체에 분산되지 않은 지속성 컨텍스트에 액세스해야 하는 경우 애플리케이션 관리 엔터티 관리자를 사용할 수 있습니다. 이 경우 각 EntityManager 인스턴스는 격리된 새 지속성 컨텍스트를 생성합니다. EntityManager 인스턴스 및 관련 PersistenceContext 는 애플리케이션에서 명시적으로 생성 및 제거됩니다. EntityManager 인스턴스가 스레드 보안이 아니므로 EntityManager 인스턴스를 직접 주입할 수 없는 경우에도 애플리케이션 관리 엔터티 관리자를 사용할 수 있습니다. EntityManagerFactory 인스턴스는 스레드 보안입니다.

예제: 애플리케이션 관리 엔터티 관리자

@PersistenceUnit
EntityManagerFactory emf;
EntityManager em;
@Resource
UserTransaction utx;
...
em = emf.createEntityManager();
try {
    utx.begin();
    em.persist(SomeEntity);
    em.merge(AnotherEntity);
    em.remove(ThirdEntity);
    utx.commit();
}
catch (Exception e) {
    utx.rollback();
}
Copy to Clipboard Toggle word wrap

12.5.2. Container-Managed EntityManager

컨테이너 관리 엔터티 관리자는 애플리케이션의 기본 지속성 프로바이더를 관리합니다. 트랜잭션 범위 지속성 컨텍스트 또는 확장 지속성 컨텍스트를 사용할 수 있습니다. 컨테이너 관리 엔터티 관리자는 필요에 따라 기본 지속성 프로바이더의 인스턴스를 생성합니다. 새로운 기본 지속성 프로바이더인 org.hibernate.jpa.HibernatePersistenceProvider 인스턴스가 생성될 때마다 새로운 지속성 컨텍스트도 생성됩니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat