Hibernate: обновление до суммы из другой таблицы - PullRequest
1 голос
/ 15 апреля 2009

Я пытаюсь повторить этот запрос из MySQL на HQL: ОБНОВЛЕНИЕ пользователей u, мин m SET SET u.mana = u.mana + COALESCE ((ВЫБЕРИТЕ СУММУ (m.mana_rate) ОТ мин m ГДЕ m.user_id = u.id), 0)

Просто сделаем это на HQL: update Пользователь u установил u.mana = u.mana + (выберите coalesce (sum (m.manaRate), 0) из шахты m, где m.userId = u.id)

выдает следующую ошибку: Исключение в потоке "main" org.hibernate.hql.ast.QuerySyntaxException: неожиданный узел AST: запрос [обновить mm.user.User u установить u.mana = u.mana + (выбрать объединение (сумма (m.manaRate) ), 0) из mm.map.buildings.mines.Mine m, где m.userId = u.id)] * ​​1010 *

Я новичок в Hibernate, поэтому я не знаю, с чего начать, и что означает ошибка. Если это невозможно, могу ли я написать собственный запрос MySQL в Hibernate?

РЕДАКТИРОВАТЬ: Кажется, проблема в "u.mana = u.mana +", потому что, когда я просто делаю u.mana = (выберите ... запрос работает просто отлично

1 Ответ

1 голос
/ 15 апреля 2009

Вы можете написать собственные запросы в спящем режиме, подробнее об этом здесь . немного уверен, что не так с вашим запросом.

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