Я пытаюсь повторить этот запрос из 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 = (выберите ... запрос работает просто отлично