2017-03-23 5 views
0

두 개의 엔티티 A와 B가 일대일과 관련이 있습니다.queryDSL을 사용하면 가능합니까?

enter image description here

는 내가 거기에 부모 ("A_1")와 아이들과 함께 "B_2"를 추출 할 ("B_1", "B_2", "B_3")이 부모의. 그래서 아래 코드를 사용해 보겠습니다.

from(QB.b).join(QB.b.a, QA.a).fetch().join(QA.a.bList).fetch().where(QB.b.name.eq("B_2")); 

그러나 결과 B.a.bList는 단지 프록시 개체입니다. 그리고 N + 1 문제가 발생합니다. 누구에게 도움을 주시겠습니까?

답변

1

이 예에서는 엔터티 A a과 엔터티 B b에 대해 쿼리 유형 쿼리를 호출 해 보겠습니다.

.from(a) 
.innerJoin(b) 
.on(a.a_id).eq(b.a_id) 
.where(b.name.eq("B_2")) 
.fetch();