kok202
JPA (기초 : 영속성 컨텍스트)

2019. 3. 17. 00:05[정리] 기능별 개념 정리/JPA

영속성 컨텍스트 : 엔티티 매니저를 생성하면 생기는 것

영속성 컨텍스트는 객체와 데이터 베이스가 통신하기 위해 마련된 가운데 공간이다.

em.persist(member)를 하면 member 객체를 영속성 컨텍스트에 보낸다.




em.flush()를 하면 영속성 컨텍스트에 존재하는 객체를 DB에 반영하는 쿼리를 실행한다.

tx.commit()을 해도 영속성 컨텍스트에 존재하는 객체를 DB에 반영하는 쿼리를 실행한다.

jpql 쿼리를 실행해도 영속성 컨텍스트에 존재하는 객체를 DB에 반영하는 쿼리를 실행한다.

=> 개발자가 쿼리가 DB에 바로 반영되는 것을 원하는 경우이므로

* em.flush는 영속성 컨텍스트를 비우는 것은 아니다.

* em.clear가 영속성 컨텍스트를 비우는 것이다.




1. 캐시로 동작할 수 있다.

2. Dirty checking을 하여서 영속성 컨텍스트 안의 데이터가 변경되면 수정 쿼리를 알아서 만든다.

3. 쓰기 지연이 가능하다.