영속성 컨텍스트의 이점
- 1차 캐시: 한번 조회한 것을 다시 조회하면 쿼리가 또 날라가지 않음, 물론 한 트랜잭션 안에서만이다. 한 고객 당 하나의 캐시라 보면된다. 그래서 이점이 그렇게 크지는 않다.
- 동일성 보장: 캐시에서 그대로 가져오기 때문에 완전히 동일한 객체를 가져온다.
- 트랜잭션을 지원하는 쓰기 지연: write를 모았다가 한번에 write한다.
- 변경 감지(Dirty Checking): 영속성 컨텍스트를 가져와서 변경하면 em.persist()나 em.merge()를 하지 않아도 JPA가 알아서 dirty checking 후 변경된 것들을 확인해 update쿼리를 만들어서 보내준다.
- 지연 로딩(Lazy Loading): 쿼리를 나중에 날려줄 수 있다.