y1551463

JPA

JPA
a month ago
·
2 min read

JPA (Java Persistence API) 이해하기

  • JPA는 자바 프로그램에서 관계형 데이터베이스에 접근하는 방식을 명세화한 인터페이스

  • 자바 진영의 ORM(Object - Relational Mapping) 기술 표준

  • 자바 어플리케이션과 JDBC 사이에서 동작하며 JPA 인터페이스의 구현체는 Hibernate 라이브러리

JPA를 통한 데이터 조작(상호작용)은 트랜잭션 단위로 진행이 된다

엔티티 매니저는 DB에 쿼리를 보내고 결과에 대한 객체를 생성하여 반환해주는데 엔티티 매니저가 객체를 생성하기 위해서는 기본 생성자가 필요하다 (엔티티 객체를 인스턴스화 하기 위해서는 기본 생성자가 필요, 기본 생성자가 없다면 객체를 생성할 수 없기 때문에 예외를 발생할 수 있음)

트랜잭션 내에서 엔티티를 변경하고 커밋 처리가 됐을 때 DB에 반영된다

JPA 내부 동작 방식

  • JPA를 통해 객체를 영속화하기 위해서는 EntityManager 객체가 필요하며 EntityManagerFactory 객체를 통해 얻을 수 있다

// "customer-exam"은 EntityManager 를 얻어오기 위한 Factory 설정
EntityManagerFactory emf = Persistence.createEntityManagerFactory("customer-exam"); 

EntityManager em = emf.createEntityManager();

// EntityManager를 통해 Transaction 을 가져온다
EntityTransaction tx = em.getTransaction(); 
  • EntityManager는 영속성 컨텍스트를 통해 영속 객체를 관리한다

    • EntityManager의 메소드를 이용해 영속 객체를 관리할 수 있다


- 컬렉션 아티클