У меня возникают проблемы при построении запросов, которые объединяют внутренние объединения в QueryDSL
, где таблицы не находятся в
A --> B --> C
отношениях, а скорее
A --> B <-- C
Вот мойSQL-запрос
select s.* from sales s
inner join branch b on b.id = s.branch_id
inner join manager m on m.branch_id = b.id and m.name = 'Alice';
(извлечен из моего примера здесь: https://www.db -fiddle.com / f / r5uvEsivyAhrP6KSpwJxBA / 1 )
Так что для моего QueryDSL-эквивалента яhave:
query.innerJoin(QSales.branch, QBranch)
.innerJoin( ??? )
Я не могу понять, как создать следующее внутреннее соединение.
Все, что я пробовал, дает мне исключения, такие как Path expected for join!
Гипотетическиесли бы это было один-на-один, я бы просто зацепил вот так ...
query.innerJoin(QSales.branch, QBranch)
.innerJoin( QBranch.manager, QManager ).on(QManager.name.eq('Alice'));
Но у меня такого отношения нет.
Я не могу найти подходящую конструкцию в QueryDSL для моделирования этого, но я предполагаю, что это будет возможно?