til
til copied to clipboard
QueryDSL OneToMany 관계에서 Cartesian Product 문제 없이 Child 조건으로 검색하는 방법
Team 에 속한 User 의 이름으로 팀을 검색하고 싶을 경우
QTeam.team.members.any().name.eq("alex")
를 사용한다.
where 조건이 다음과 같이 실행된다.
where
exists (
select
1
from
user u
where
t.id=u.team_id
and u.name='alex'
)
OneToMany 관계에 있는 테이블을 queryFactory
를 사용해서 join
하면 안되고, 위 Predicate
를 where
조건으로 사용해야한다.