Я пытаюсь перевести следующий запрос MySQL в QueryDSL
SELECT t1.*
FROM TrainTable t1 LEFT JOIN TrainTable t2
ON (t1.Train = t2.Train AND t1.Time < t2.Time)
WHERE t2.Time IS NULL;
Но я застрял на том, как обращаться с псевдонимами в части ON
и в части WHERE
.
Вот что я имел в виду:
QTrainTable qt1 = new QTrainTable ("t1");
QTrainTable qt2 = new QTrainTable ("t2");
List<TrainTable > fetch = query.select(qt1)
.from(qt1)
.leftJoin(qt2).on(qt1.institution.id.eq(qt2.institution.id).and(qt1.transDate.lt(qt2.transDate)))
.where(qt2.transDate.isNull())
.fetch();
но я получаю Path expected for join
ошибку. Ошибка выдается, поскольку между qt1
и qt2
нет взаимосвязи, как объяснено здесь .
Как переписать запрос MySQL в QueryDSL?