-
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