1. 영속성 컨텍스트 (persistence context)
Entity 객체를 효율적으로 쉽게 관리하기 위해 만들어진 공간
객체가 생명(객체가 유지되는 시간)이나 공간(객체 의 위치)을 자유롭게 유지하고 이동할수 있는 객체를 저장
2. EntityManger Factory
- EntityManagerFactory는 일반적으로 DB 하나에 하나만 생성되어 애플리케이션이 동작하는 동안 사용
- 디비에 접근하는 트랜잭션이 생길 때 마다 쓰레드 별로 Entity Manager를 생성하여 영속성 컨텍스트에 접근
entityManager.persist(entity); //entity를 영속성 컨텍스트에 저장
3. Entity의 생명주기
- 비영속(new) : 영속성 컨텍스트와는 무관한 상태
- 영속(managed) : 영속성 컨텍스트에 저장된 상태
- 준영속(detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태
- 삭제(removed) : 영속성 컨텍스트에서 삭제된 상태
4. 1차 캐시
- 영속성 컨텍스트 내부에 있는 캐시를 거쳐서 DB가 업데이트
- Map에는 key는 id값, value는 해당 entity값
- 디비 조회 횟수, '1차 캐시'를 사용해 DB row 1개 당 객체 1개가 사용되는 것을 보장
- @Transactional이 붙는다면 JPA는 데이터를 조회하며 cache에 저장을 한 후 다음 조회때는 같은 조회를 하지 않고 cache에 있는 값을 내보냄
'TIL' 카테고리의 다른 글
[TIL] 20240123 REST API request 방식 (0) | 2024.01.23 |
---|---|
[TIL] 20240122 http status code (0) | 2024.01.22 |
[TIL] 20240118 Spring Ioc, DI (0) | 2024.01.18 |
[TIL] 20240115 Java String 클래스 (1) | 2024.01.15 |
[TIL] 20240112 singleton 패턴 (0) | 2024.01.12 |