-
[JPA] 프록시인프런 - 스프링/JPA 프로그래밍 - 기본편 2023. 11. 27. 16:26
- 상황에 따라 다르다.
- 위의 getName() 메서드 호출과 같이 데이터가 실제로 필요한 시점에 프록시 객체의 Member 타입의 target이 영속성 컨텍스트를 이용하여 초기화되는 방식으로 작동한다.
- 4번째 항목의 반대 상황 즉, 영속성 컨텍스트에서 em.getReference()를 호출하여 프록시 객체가 있는 상황이면 이후에 em.find()를 호출하면 프록시 객체를 반환한다. (영속성 컨텍스트에서 반복적으로 객체를 가져오면 무조건 같은 객체이다.)
- 5번 항목 예시 코드
Member refMember = em.getReference(Member.class, member.getId()); System.out.println("refMember = " + refMember.getClass()); //Proxy em.detach(refMember); //준영속 상태로 변경 refMember.getUsername(); //프록시 초기화 불가능
- 프록시 인스턴스의 초기화 여부 확인 예시 코드
emf.getPersistenceUnitUtil.isLoaded(entity); //EntityManagerFactory를 통해서
출처: 인프런 김영한님의 자바 ORM 표준 JPA 프로그래밍 - 기본편
https://www.inflearn.com/course/ORM-JPA-Basic
자바 ORM 표준 JPA 프로그래밍 - 기본편 - 인프런 | 강의
초급자를 위해 준비한 [웹 개발, 백엔드] 강의입니다. JPA를 처음 접하거나, 실무에서 JPA를 사용하지만 기본 이론이 부족하신 분들이 JPA의 기본 이론을 탄탄하게 학습해서 초보자도 실무에서 자
www.inflearn.com
'인프런 - 스프링 > JPA 프로그래밍 - 기본편' 카테고리의 다른 글
[JPA] 영속성 전이(CASCADE)와 고아 객체 (0) 2023.11.29 [JPA] 즉시 로딩과 지연 로딩 (0) 2023.11.28 [JPA] Mapped Superclass - 매핑 정보 상속 (0) 2023.11.27 [JPA] 상속관계 매핑 (0) 2023.11.27 [JPA] 다양한 연관관계 매핑 (1) 2023.11.27