Запрос MySQL к запросу QueryDsl (Обработка псевдонимов) - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь перевести следующий запрос 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?

...