김영한 강사님의 '실전! 스프링부트와 JPA 활용1 - 웹 애플리케이션 개발' 강의를 듣다 영속성이 무엇이고 @PersistenceContext이 어떤 역할을 하는지 궁금해져서 정리해본다.
Reference
1. https://velog.io/@jaeeunxo1/spring-singleton
2. https://velog.io/@seongwon97/Spring-Boot-%EC%98%81%EC%86%8D%EC%84%B1-%EC%BB%A8%ED%85%8D%EC%8A%A4%ED%8A%B8Persistence-Context
3. https://ppaksang.tistory.com/5
4. https://batory.tistory.com/497
5. https://melonicedlatte.com/2023/01/22/163300.html
6. https://kihoonkim.github.io/2017/01/27/JPA(Java%20ORM)/2.%20JPA-%EC%98%81%EC%86%8D%EC%84%B1%20%EA%B4%80%EB%A6%AC/
7. https://velog.io/@bey1548/JPAEntity-EntityManager-EntityManagerFactory
영속성을 이해하기 전 싱글톤을 먼저 알고가면 영속성을 더 깊게 이해할 수 있다.
정리
- EntityManager : @Entity를 달고 있는 Entity 객체 관리
-> Entity 객체들을 Persistence Context에서 관리- @PersistenceContext는 EntityManager를 생성하는 클래스
- EntityManager 생성 방식은 2가지
1) EntityManager Factory를 통해 새로운 EntityManager 생성 및 주입
2) Transaction에 의해 기존 생성된 EntityManager를 주입
++ @PersistenceUnit을 이용하면 EntityManager Factory를 직접 등록할 수 있지만 잘 쓰지 않는다.