본문 바로가기
Spring/DB연동

JPA의 핵심 클래스들

by doriver 2024. 5. 9.

JPA의 핵심 클래스들

Entity

DB의 테이블과 매핑되는 객체를 나타내는 클래스
DB테이블과 매핑되는 필드 및 관계를 정의함

EntityManager

Entity 를 관리하는 핵심 인터페이스
EntityManager를 사용하여 영속성 컨텍스트?를 관리하고, 엔티티의 CRUD(Create, Read, Update, Delete) 작업을 수행
EntityManager는 영속성 컨텍스트를 통해 엔티티의 CRUD 작업을 관리하고, 이러한 작업이 데이터베이스에 반영됨

EntityManagerFactory

EntityManager를 생성하는 팩토리 클래스
어플리케이션 전체에서 단 하나의 EntityManagerFactory를 사용하여 엔티티 매니저를 생성함

Persistence

JPA 설정 정보를 읽어들이고 EntityManagerFactory를 생성하는 클래스
Persistence클래스의 정적 메서드를 사용하여 EntityManagerFactory를 얻을 수 있다.

 

EntityTransaction

JPA에서 트랜잭션을 관리하는 인터페이스
EntityManager와 EntityTransaction이 함께 작업하여 트랜잭션을 관리

EntityManager는 트랜잭션을 시작하고 종료함. 
트랜잭션을 시작하면 영속성 컨텍스트가 활성화되고, 데이터베이스 작업을 수행할 수 있다. 

이때 EntityManager는 EntityTransaction을 반환하여 트랜잭션을 관리한다
EntityTransaction은 트랜잭션의 커밋(commit) 또는 롤백(rollback)을 직접 수행하는 메서드를 제공함

즉, EntityManager가 트랜잭션을 시작하고 트랜잭션 내에서 데이터베이스 작업을 수행한 후, EntityTransaction을 사용하여 트랜잭션을 커밋하거나 롤백

 

Query

JPA에서 데이터베이스로부터 데이터를 조회하는 데 사용되는 인터페이스
JPQL( Java Persistence Query Language )이나 Criteria API를 사용하여 데이터베이스에 쿼리를 보냄

 

관련 용어

영속성(Persistence)

데이터 처리가 사용자의 애플리케이션 실행이 종료되어도 지속되는 특성을 의미
즉, 데이터가 데이터베이스에서 처리되는것

영속성 컨텍스트(Persistence Context)

JPA가 엔티티를 관리하는 데 사용하는 환경
엔티티를 추적하고 관리하며, 엔티티의 생명주기를 관리
EntityManager가 관리하는 영역이며, 영속성 컨텍스트에 저장된 엔티티는 영속 상태로 변경됨

 

트랜잭션을 시작하면 
영속성 컨텍스트가 활성화되고, 데이터베이스 작업을 수행할 수 있다.

 

EntityManager는 영속성 컨텍스트를 통해 엔티티의 CRUD 작업을 관리하고, 이러한 작업이 데이터베이스에 반영됨