본문 바로가기

강의 내용 정리/스프링부트와 JPA 활용 2

4. 컬렉션 조회 최적화 4-1 엔티티 직접 노출

XToMany 조회에 대해 알아보자. 

일대다에서 컬렉션 조회 할 때 1쪽에서 join해서 조회 할 때 다 쪽이 3개면 결과가 3개로 뻥튀기 되서 나옴.

 

 

 

 

===== v1.

무한반복된다. (@JsonIgnore 과 hibernate5Module 도 없는 상태.

 

저걸 빈으로 등록하면 프록시객체가 들어있는 건 무시하고 정상적으로 데이터가 로딩 된 애들만 API로 반환이 된다.

 

이런 식으로 된다. 간단조회 v1 에서 했던것.

 

 

 

 

 

 

 

OrderApiController.java

밑 두줄은 List 이므로 forEach 돌면서 getName으로 강제 초기화 해줌.

 

o.getItem() 한 이유 :

OrderItem 의 Item 까지 초기화 하기 위함. .getName 할 때 Item에 실제 값이 들어감.

 

 

이 때 강제초기화 한 이유 :

얘가 프록시인 애는 데이터를 안 뿌림 -> 초기화되어있으면(=실제 객체 들어있으면) 값을 뿌림.

물론 지금도 양방향 관계는 한쪽에 @JsonIgnore 걸려있음. ( 양방향일 떄는 무조건 걸어라! )

 

 

이렇게 출력된다. 엔티티 보면서 읽으면 편함.

 

=> 다음시간 DTO로 바꾸자! (쉽진 않다. ORderItem, OrderItem안의 Item 까지 DTo로 바꿔야함.)

 

 

Recent Posts
Popular Posts
Recent Comments