2011-12-30 7 views
4

Я пытаюсь написать ниже sql-запрос в hibernate hql. Я использую базу данных оракула.Преобразование Sql в Hql

SELECT distinct u.user_id,u.user_name 
FROM (select abcId, max(upload_date) upload_date, user_id from ABC 
GROUP BY abcId, user_id) abc,users u WHERE abc.user_id=u.user_id 

Я попытался изо всех сил написать его в hql. К сожалению, я не смог добиться успеха. Может ли кто-нибудь пролить свет на меня, чтобы достичь этого в hql?

+0

Почему бы тебе не показать нам, что вы пробовали? –

+0

Я попробовал что-то вроде этого пользователя select, abc, max (abc.uploadDate) от пользователя USERS, ABC abc, где abc.userId = user.userId GROUP BY abc.abcId с max (abc.uploadDate) – DonX

+0

Ну, этот запрос радикально другой. Он даже не возвращает то же самое. Почему бы вам не перевести SQL буквально? –

ответ

4

Я думаю session.createSQLQuery(String sqlQuery) может работать для вас ... see an example here

+0

Спасибо Amit. В настоящее время я использую вышеупомянутое, и приложение работает нормально. Еще в ближайшем будущем мы планируем изменить базу данных на mysql. Поэтому я не хочу прикасаться к коду в это время, а не просто изменять драйвер базы данных. – DonX

+0

Это красота Спящего, вам не нужно сильно меняться. просто некоторые свойства. Это решило вашу проблему, чем вы можете принять ее как ответ, чтобы это было полезно и для других. При желании вы также можете повысить ... и, конечно, это не обязательно: D ... :) – aProgrammer

+1

Спасибо Amit. Я поддержал. Прежде чем задать этот вопрос, я очень хорошо знал, что могу использовать createSql для его завершения. Мое намерение - написать его в hql (см. Мой предыдущий комментарий). Поэтому я не собираюсь принимать это в качестве ответа. – DonX