#15 부모-자식 프록시 실습

디렉토리 구조

OrderItem과 Item은 ManyToOne 관계이다. Item 밑에 서브클랙스 Book, Album, Movie 가 있다. ParentChildProxyTest에서 프록시를 부모 타입으로 조회하면 부모의 타입을 기반으로 프록시가 생성되는 문제를 살펴보고, 해결방법 실습을 해본다. (책에는 3개만 실습해본다.)

  • 해결방법

    • JPQL로 대상 직접 조회

    • 프록시 벗기기 (실습)

    • 기능을 위한 별도 인터페이스 제공 (실습)

    • 비지터 패턴 사용 (실습)

1 기본 엔티티들 코드

3. 해결방법에서 엔티티들을 수정해 갈 것이다.

2 테스트 코드 - 문제점 확인

3. 해결방법

1. 프록시 벗기기 (실습)

Hibernate.unproxy()

OrderItem-item 관계에 cascade = CascadeType.PERSIST 추가. generateOrderItem()에서 OrderItem만 영속화하고 DB에 플러시하면 아이템도 같이 들어간다.

2. 기능을 위한 별도 인터페이스 제공 (실습)

3. 비지터 패턴 사용 (실습)

Last updated