ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring JPA 이론 정리
    자바/JPA 2022. 3. 16. 20:03

    1. JPA에서 가장 중요한 2가지

    - 객체와 관계형 데이터베이스 매핑하기(ORM)

    - 영속성 컨텍스트

     

    2. Entity Manager Factory와 EntityManager

    - 클라이언트 요청에 따라 EntityManager를 생성하여 DB에 접근하고 트랜잭션 처리를 수행합니다.

     

    3. 영속성 컨텍스트

    - 엔티티를 영구 저장하는 환경이라는 뜻.

    - EntityManager를 통해 1:1로 영속성 컨텍스트에 접근합니다.

    - EntityManager.persist(entity)

     

    4. 엔티티의 생명주기

    - 비영속(new): 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태

    - 영속(managed): 영속성 컨텍스트에 관리되는 상태

    - 준영속(detached): 영속성 컨텍스트에 저장되었다가 분리된 상태

    - 삭제(remove): 삭제된 상태

    //엔티티 매니저 펙토리 생성
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello");
    //엔티티 매니저 생성
    EntityManager em = emf.createEntityManager();
    //엔티티 매니저 트랜잭션 생성
    EntityTransaction tx = em.getTransaction();
    tx.begin();
    
    //객체를 생성한 상태(비영속)
    Member member1 = new Member();
    member1.setId(100L);
    member1.setName("회원");
    
    //객체를 저장한 상태(영속)
    em.persist(member);
    
    //회원 엔티티를 영속성 컨텍스트에서 분리, 준영속 상태
    //em.detach(member);
    
    //객체를 삭제한 상태(삭제)
    //em.remove(member);
    
    //커밋하는 순간 DB에 쿼리를 수행
    tx.commit();

    5. 영속성 컨텍스트의 이점

    - 1차 캐시: 영속성 컨텍스트 내에 키(@Id)와 값(엔티티 객체)이 적재된다. 조회할 때 영속성 컨텍스트에서 조회한다. DB까지 가지 않는다.

    - 동일성 보장

    '자바 > JPA' 카테고리의 다른 글

    02. Spring Boot JPA 테이블 자동 생성  (0) 2022.03.16
    01. Spring Boot 임베디드 DB H2 사용해보기  (0) 2022.03.16
Designed by Tistory.