QueryDsl 객체 그래프 4개 이상 탐색시 NPE 발생하는 케이스

https://www.sunny-son.space/spring/querydsl%EC%9D%98%20npe%20%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0%20+%20cross%20join/

 

QueryDSL NPE 문제 해결하기 + Cross Join

1. 발생 조회 쿼리를 작성 도중에 500에러가 발생했습니다. 에러코드를 확인해보니 NPE가 발생했습니다. picture1 해당 쿼리에서 Null이 발생했다고 하는군요. 디버킹으로 찾아본 결과 register에서 Null

www.sunny-son.space

먼저 위 링크에서 참조함.

 

QueryDsl 5 기준으로 만약에 

엔티티를 4개이상 타서 비교를 해야하는 상황이 발생하는 경우

4개 이상부터는 더 이상 해당 엔티티에 대한 쿼리를 발생시키지 않기에, 해당 객체를 참조하려고 시도시

NPE 가 발생한다.

 

순환참조의 문제때문에 이러한 설정이 되어 있는 것 같다.

 

결론 : 객체 그래프 카운팅의 초기화를 위해 해당 엔티티 변수에 @QueryInit .. 설정을 해주어야한다.