저번 시간의 🤑영속성 관리(3) - 영속성 컨텍스트의 특징 를 충분히 이해하면 이 글을 읽는게 수월할 것이다.저자 김영한의 자바 ORM 표준 JPA 프로그래밍 📚을 참고했다.
영속성 컨텍스트 내부에 있는 캐시다. 영속 상태의 엔티티라면 모두 1차 캐시에 저장된다.
1차 캐시는 내부에 @Id로 매핑하는 식별자와 값으로 하는 Map이 내부에 있다.
@PersistenceContext // 스프링이 처음 시작할 때, entity manager를 만들어서 빈으로 등록을 해줌
private EntityManager em;
// 엔티티 생성 (비영속)
Member member = new Member();
member.setId("member");
member.setName("회원");
// 엔티티 영속하기, 1차 캐시에 저장됨
em.persist(member);
위와 같이 엔티티를 영속하는 순간 영속성 컨텍스트 내부의 1차캐시에 @Id는 식별자로 앤티티는 값으로 저장된다. 저장과 조회의 기준은 데이터베이스 기본 키 값이다.
// 엔티티 클레스 타입, 식별자 값
Member member = em.find(Member.class, "member"); // 1차 캐시에서 조회
간단 명료하게. 엔티티를 조회하면 메모리에 있는 1차 캐시에서 바로 불러온다. 따라서 성능상 이점을 누릴 수 있다.
🫠영속성 관리(5) - 엔티티 조회와 동일성 보장 (0) | 2022.05.29 |
---|---|
🤑영속성 관리(3) - 영속성 컨텍스트의 특징 (0) | 2022.05.14 |
🐲 영속성 관리(2) - 연속성 컨텍스트(Persistence Context) (0) | 2022.05.13 |
👨💼🏭영속성 관리(1) - EntityManager (앤티티 매니저) (0) | 2022.05.07 |
댓글 영역