728x90
반응형

JPA의 영속성이란?

객체의 상태를 지속적으로 유지하는 기능을 의미

영속성은 객체를 관계형 DB와 연결하여 객체의 상태 변경을 DB에 자동으로 반영하고, DB의 변경을 객체에 자동으로 반영하는 기능을 제공

 


JPA의 영속성을 이해하기 위한 주요 개념

1. 엔티티(Entity)

JPA에서 관리되는 객체로, DB 테이블과 매핑되는 클래스

영속성 컨텍스트에서 관리하는 대상

 

2. 엔티티 매니저(Entity Manager)

JPA에서 엔티티를 관리하는 주체로 DB와의 통신을 담당

영속성 컨텍스트를 생성하고, 엔티티의 생명주기를 관리

 

3. 영속성 컨텍스트(Persistence Context)

엔티티의 상태를 관리하는 논리적인 영역

엔티티의 변경을 추적하고, 변경 내용을 DB에 동기화

 

예시 - User 엔티티

@Entity
@Table(name = "users")
public class User {
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;
  
  private String name;
  
  private String email;
  
  // 생성자, getter, setter 등 생략
}
EntityManagerFactory emf = Persistence.createEntityManagerFactory("my-persistence-unit");
EntityManager em = emf.createEntityManager();

// 영속성 컨텍스트에 사용자 객체를 추가
User user = new User();
user.setName("John");
user.setEmail("john@example.com");

em.getTransaction().begin();
em.persist(user); // 사용자 객체를 영속성 컨텍스트에 저장
em.getTransaction().commit();	// 해당 변경 내용 DB에 반영

em.close();
emf.close();

JPA는 영속성을 사용하여 개발자가 직접 SQL을 작성하거나 DB 연결을 다루지 않고도 객체를 DB에 저장하고 조회하는 작업을 수행할 수 있음.

JPA는 객체와 DB 사이의 매핑 작업을 대신 처리하고, 영속성 컨텍스트를 통해 엔티티의 생명주기를 관리함

 

반응형
복사했습니다!