2016-11-21 11 views
1
SELECT * 
FROM visitdetails vd 
LEFT JOIN 
    (SELECT MAX(id) AS id, VisitID 
    FROM claimfilelist GROUP BY VisitID) cf ON cf.visitid = vd.Id 
LEFT JOIN claimfilelist cf1 ON cf1.id = cf.id 

У меня есть этот SQL-запрос. Как я могу преобразовать его в HQL?Как преобразовать SQL-запрос с производной таблицей в HQL?

+0

Язык запроса на улей или язык запроса на спящий режим? –

+0

hibernate query language – Chinnu

ответ

1

HQL-documentation говорит, что подзапросы разрешены только в SELECT и WHERE. Итак, мой первый шаг, чтобы переместить подзапрос к WHERE -clause:

SELECT * 
FROM visitdetails vd 
    LEFT JOIN claimfilelist cf ON cf.visitid = vd.id 
WHERE cf.id IS NULL OR cf.id = (
    SELECT max(cfInner.id) 
    FROM claimfilelist cfInner 
    WHERE cfInner.visitId = vd.id 
) 

В зависимости от вашего Hibernate - версия, которую вы, возможно, потребуется изменить соединения. Я не уверен, работает ли запрос, но вы можете попробовать попробовать.

+0

Поддерживает ли hql условие «включено» для левого соединения? – Chinnu

+0

"LEFT JOIN Claimlistlist cf ON cf.visitid = vd.id" Можно ли связать таблицу с этим условием 'on' в hql? – Chinnu

+0

У меня есть следующая ошибка. – Chinnu