-

-
안녕하세요? 오늘은, JPA의 특성 중 하나인, 영속 상태와 준영속 상태에 대해서 알아보도록 하겠습니다.
※ JPA의 영속성과 영속성 컨텍스트/이점과 flush 등의 관련된 내용은, 아래 포스팅을 참조하시길 바라겠습니다.
JPA 영속성과 영속성 컨텍스트에 대하여!
- -안녕하세요? 오늘은 JPA에서 가장 중요한 개념인, 영속성에 관련해서 알아보도록 하겠습니다.JPA를 공부할 때 가장 중요한 점은,1. 객체와 관계형 데이터베이스를 매핑하는 것(Object Relational Mapp
logger-debug.tistory.com
JPA 영속성 컨텍스트의 장점에 대하여!
- -안녕하세요? 오늘은, JPA에서 가장 중요한 개념인, 영속성에서 더 나아가서, 영속성 컨텍스트의 이점에 대해서 알아보도록 하겠습니다.※ JPA의 영속성과 영속성 컨텍스트에 대해서는, 아래 포
logger-debug.tistory.com
https://logger-debug.tistory.com/entry/JPA-%EC%98%81%EC%86%8D%EC%84%B1-Flush
JPA 영속성 Flush
- -안녕하세요? 오늘은, 이전 포스팅에서 다뤘던, 영속성 컨텍스트의 이점 중에서, 1차캐시 중, 트랜잭션의 commit 시점에서, 내부적으로 이루어지는 flush에 대해서 알아보도록 하겠습니다.※ JPA
logger-debug.tistory.com
영속 상태란?
: 영속성 컨텍스트의 1차캐시에 올라간 상태 (EntityManager가 관리하는 상태) + persist()로 영속성 컨텍스트에 저장한 상태도 영속상태 + find()로 조회를 할 때, 1차캐시에 데이터가 미존재함으로써, DB에서 조회해서 1차캐시에 데이터를 저장한 상태도 영속상태 |
EntityManagerFactory emf = Persistence.createEntityManagerFactory("유닛명");
EntityManager em = emf.createEntityManager();
Entity entity = em.find(Entity.class, 1L);
// em.find()가 일어 날때, 1차 캐시에 없으므로 DB에서 조회한 엔티티를 1차 캐시에 넣는다. 영속상태가 됐다.
entity.setName("AAAAA");
// setName으로 이름을 바꾸고 커밋 하려니까, Dirty Checking이 일어나서 1차 캐시의 엔티티와 스냅샷이 다른 것을 감지하고 Update 쿼리를 날리게 된다.
transaction.commit();
준영속상태
: 영속 상태의 엔티티가 영속성 컨텍스트에서 분리된 상태 (detached) : JPA가 관리하지 않는 객체 |
준영속상태로 만드는 방법
EntityManager.detach(엔티티)
: 특정 엔티티만 준영속 상태로 전환
EntityManager.clear()
: 영속성 컨텍스트를 완전히 초기화
EntityManager.close()
: 영속성 컨텍스트를 종료
EntityManagerFactory emf = Persistence.createEntityManagerFactory("유닛명");
EntityManager em = emf.createEntityManager();
Entity entity = em.find(Entity.class, 1L);
entity.setName("AAAAA");
em.clear();
Entity entity1 = em.find(Entity.class, 1L);
transaction.commit();
안녕하세요? 오늘은, JPA의 특성 중 하나인, 영속 상태와 준영속 상태에 대해서 알아보았습니다.
그럼 오늘도 즐거운 하루 되시길 바라겠습니다.
'프로그래밍 > Back-end' 카테고리의 다른 글
JPA QueryDSL 네이티브SQL JDBC MyBatis (0) | 2024.10.18 |
---|---|
JPA 지연로딩 즉시로딩 (0) | 2024.10.17 |
JPA 지연로딩 즉시로딩 프록시 proxy (0) | 2024.10.17 |
JPA 영속성 전이 CASCADE 고아 객체 (0) | 2024.10.15 |
JPA 영속성 Flush (0) | 2024.10.15 |
JPA 영속성 컨텍스트의 장점에 대하여! (0) | 2024.10.15 |
JPA 영속성과 영속성 컨텍스트에 대하여! (0) | 2024.10.15 |
JPA 데이터 타입과 기본 임베디드 컬렉션에 대하여! (0) | 2024.10.14 |