Java HQL count distinct lower语法

Java HQL count distinct lower语法,java,sql,hibernate,hql,Java,Sql,Hibernate,Hql,我想将所有用户的用户名小写,然后计算有多少个不同的用户名,但在此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(us

我想将所有用户的用户名小写,然后计算有多少个不同的用户名,但在此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
但当我加上较低的(…)它失败了,任何帮助都是非常感谢的

那么:

从UserEntity中选择count(lower(user.username))作为用户组按lower(user.username)


我的猜测是,您正在处理聚合函数和语句:
count(disctinct lower(…)
是HQL不支持(或至少不支持)的[aggregated function]-[statement]-[aggregated function]模式。

谢谢@Serge Ballesta,我最后只是将其作为SQL查询而不是HQL查询运行,它工作得很好。

如何将该查询发送到hibernate?由于它被格式化为本机SQL查询,您可以尝试使用createSQLQuery…谢谢@SergeBallesta,这就是我最后要做的。