在hibernate和HQL中按错误分组

时间:2014-04-29 13:27:49

标签: sql hibernate hql

我的HQL查询给出了以下错误: java.sql.SQLSyntaxErrorException:表达式不是聚合列或GROUP BY列:CIUDAD2_.ID_PAIS

我的查询是:

return getSessionFactory().getCurrentSession().createQuery("select s.ciudadSede.paisCiudad.idPais AS idPais,"
            + "s.ciudadSede.paisCiudad.nombrePais AS nombrePais,"
            + "s.ciudadSede.idCiudad AS idCiudad,"
            + "s.ciudadSede.nombreCiudad AS nombreCiudad,"
            + "case when s.ciudadSede.valorCiudad = null then s.ciudadSede.paisCiudad.valorPais else s.ciudadSede.valorCiudad end AS valor,"
            + "s.tipoJjoo.descripcionTipo AS descripcionTipoJjoo,"
            + "s.ciudadSede.valorCiudad AS numeroVecesSede "
            + "from Sede s join s.ciudadSede AS c "
            + "group by c.idCiudad").setResultTransformer(Transformers.aliasToBean(SedeDto.class)).list();
}   

我想要的是将按城市分组的“Sedes”分组

1 个答案:

答案 0 :(得分:0)

如果您要 GROUP BY foo ,则表示查询将为表达式的每个不同值返回一行 foo

SQL要求 SELECT 列表中的每个表达式都是 GROUP BY 子句中包含的表达式或聚合函数(例如COUNT()SUM()MIN()MAX()AVG())。 (该规则有一些例外,例如文字和确定性函数的结果。)

该错误表示查询的SELECT列表中的表达式不在GROUP BY子句中,或者不是聚合表达式。


我不确定您是否提出问题,或者您是否只是就当前的努力提供状态报告......

您确定要 GROUP BY 而不是 ORDER BY