Bezdepbonusu7Программирование: статьи и ответы

Вопрос

HQL подсчитывает отдельный нижний синтаксис

Автор вопроса: user2586917Ответов: 2

Я хочу перевести все имена пользователей в нижний регистр, а затем подсчитать, сколько их существует, но получаю сообщение об ошибке в этом запросе hql:

select count(distinct lower(user.username)) from UserEntity as user

org.hibernate.hql.internal.ast.QuerySyntaxException: expecting CLOSE, found 'user' near line 1, column 29 [select count(distinct lower(user.username))

Это отлично работает:

select count(distinct user.username) from UserEntity as user

Но когда я добавляю нижний (...), он терпит неудачу, любая помощь очень ценится!

  • Как вы отправляете этот запрос в спящий режим? Поскольку он отформатирован как собственный SQL-запрос, вы можете попробовать использовать createSQLQuery... Serge Ballesta 13.06.2014
  • Спасибо @SergeBallesta, это то, что я в итоге сделал. user2586917 13.06.2014

javahibernatesqlhql

Ответы

Ответ 1 · рейтинг 1 · Narmer

Что о:

select count(lower(user.username)) from UserEntity as user group by lower(user.username)?

Я предполагаю, что вы возитесь с агрегатными функциями и операторами: count(disctinct lower(...)) - это шаблон [агрегированная функция] - [оператор] - [агрегированная функция], который не поддерживает HQL (или, по крайней мере, не рассматривается в документации).

Ответ 2 · user2586917

Спасибо @Serge Ballesta, в итоге я просто запустил это как SQL-запрос вместо HQL-запроса, и все сработало нормально.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы