Выберите оператор в предложении в Hibernate - PullRequest
2 голосов
/ 12 июля 2011

У меня есть три таблицы с именами:

  • schedule (id, status)
  • criteis (id, name, number, bank)
  • info (id, compleInfo)

id isобщий для всех трех таблиц.

Требуется, чтобы я хотел банк, номер из таблицы crities и completeInfo из информационной таблицы и счетчик статуса из таблицы Schedule.

Я использовал этот запрос

select count(s.status), a.compleInfo, a.bank, a.number 
from (select in.compleInfo, cr.bank, cr.number 
      from criteis cr, info in  where cr.id=in.id ) a
left join schedule s on a.id = s.id group by a.id

Он отлично работает в MYSQL Editor, но когда я запускаю его в Hibernate, я получаю исключение ниже

Причина: java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: неожиданный токен:(возле строки 1, [выберите количество (s.status), a.compleInfo, a.bank, a.number от (выберите in.compleInfo, cr.bank, cr.number из criteis cr, информация о том, где cr.id =in.id) левый график соединения s в группе a.id = s.id с помощью a.id]

я его погуглил и обнаружил запросов Hhibernate HQL Subselect , которые делает hqlне поддерживает подзапросы в предложении from.

Есть ли другой способ написать вышеуказанный запрос в Hibernate?

1 Ответ

2 голосов
/ 12 июля 2011

HQL позволяет обходить дерево объектов, но это не SQL.

Если вы хотите выполнять запросы SQL, вы должны использовать собственные запросы SQL .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...