Published 2022. 9. 28. 20:21
728x90
반응형

JPA란?

Java Persistence API의 약자로 자바의 ORM(Object Realational Mapping) 표준 스펙을 정의

JPA의 스펙은 자바의 객체와 데이터베이스를 어떻게 매핑하고 동작해야 하는지를 정의하고 있음

 


하이버네이트(Hibernate)

ORM Framework 중 하나로 'JPA 프로바이더'라고도 부름

JPA의 실제 구현체 중 하나이며, 현재 JPA 구현체 중 가장 많이 사용됨

 


영속성 컨텍스트(Persistence Context)

영속성 컨텍스트는 JPA가 관리하는 엔티티 객체의 집합

엔티티 객체가 영속 컨텍스트에 들어오게 되면 JPA는 엔티티 객체의 매핑 정보를 가지고 DB에 반영함

엔티티 객체가 영속 컨텍스트에 들어오게 되어 관리 대상이 되면 그 객체를 영속 객체라고 부름

 

영속성 컨텍스트는 세션 단위로 생명주기를 가짐

영속성 컨텍스트에 접근하기 위해 EntityManager를 사용함

EntityManager는 하나의 세션으로 보고 아래와 같은 방식으로 동작을 구성함

1️⃣ EntityManager 생성(EntityManagerFactory를 통해 생성)

2️⃣ EntityManager가 가지고 있는 트랜잭션을 시작

3️⃣ EntityManager를 통해 영속 컨텍스트에 접근하고 객체를 작업

4️⃣ 트랜잭션을 커밋하여 DB에 반영

5️⃣ EntityManager 종료

 


엔티티(Entity) 클래스

JPA 어노테이션을 활용하여 엔티티 클래스를 정의

 

💡 주요 어노테이션

@Entity : 해당 클래스가 JPA 엔티티 클래스라고 정의

@Table : 해당 클래스가 데이터베이스의 어느 테이블에 매핑되는지 정의

@Id : DB 테이블의 Primary Key 컬럼과 매핑

@Column : 매핑할 데이터베이스의 컬럼 이름과 필드 변수의 이름이 다를 경우 매핑하기 위해 사용

반응형
복사했습니다!