WEB/DataBase
JPA- 영속성 컨텍스트의 동일성 보장
hwahaha
2024. 7. 29. 21:53
영속성 컨텍스트 사용시 이점으로 언급되는 동일성 보장 왜 이점인지 알아보자 !!
영속성 컨텍스트 개념
- 영속성 컨텍스트는 엔티티를 영구 저장하는 환경으로 엔티티 매니저를 통해 접근이 가능
동일성 보장?
- 영속성 컨텍스트 안에 데이터가 하나씩 존재하도록 하는 규칙
- 중복 불허용 및 데이터 관리에 최적
궁금점
영속성 컨텍스트가 없어도 primary key가 있으면 동일성을 보장하지 않을까?
DB에서 직접 조회하는 경우
- 동일한 ID를 가진 데이터를 여러번 조회하면 새로운 객체로 반환
User user1 = database.findUserById(1);
User user2 = database.findUserById(1);
>> user1과 user2는 같은 primary key를 가진 다른 메모리의 객체
영속성 컨텍스트를 사용하는 경우
- 한 번 조회한 데이터를 캐시에 저장, 같은 ID로 조회할 때 항상 같은 객체를 반환
User user1 = entityManager.find(User.class, 1);
User user2 = entityManager.find(User.class, 1);