Life Developer
인생 개발자
[JAP]fetch 조인 - 특징과 한계

연관된 엔티티들을 SQL 한번으로 조회 - 성능 최적화

 

LAZY 전략보다 우선시 되어 한방에 DB에서 뽑아온다.

 

실무에서는 글로벌 로딩 전략은 모두 지연로딩(LAZY 로딩) 으로 잡고,

 

최적화가 필요한 곳에 이 fetch 조인은 적용한다. (성능 문제 대부분 해결)

 

 

 

fetch 조인 대상에게는 별명을 줄수 없다.

 

근데 하이버네이트는 가능하긴 한데 사용하지 말자.

 

어차피 다 조회하는 한방쿼리인데 그 대상의 속성들에게 별명을 줄 필요도 없고 준다해도 위험함.

 

 

 

그리고 둘 이상의 컨렉션은 fetch 조인을 할수 없다.

 

 

컬렉션을 fetch 조인 하면 페이징을 사용할수가 없다.

 

일대일, 다대일 같은 단일 값 연관 필드들은 fetch 써도 페이징 가능.

 

데이타가 뻥튀기 되기 때문에 컬렉션을 fetch 조인하면 페이징을 절대 못함.

 

일대다 를 뒤집어서 다대일로 바꿔서 페이징 구현할 수도 있음.

 

작동은 해도 개판되는거임. 망함. (하이버네이트는 경고로그를 남기고 메모리에서 페이징함,겁나위험함)

 

 

 

  Comments,     Trackbacks