Hibernate Native 查询在结果数组中返回了重复的结果,并在查询中添加了 group by

Posted

技术标签:

【中文标题】Hibernate Native 查询在结果数组中返回了重复的结果,并在查询中添加了 group by【英文标题】:Hibernate Native query returned duplicated result in result array with group by added in query 【发布时间】:2017-11-26 15:47:29 【问题描述】:

我使用的是 Hibernate 版本 3。 我的表有 9 列,我的查询看起来像

select col1, count(col2), sum(col3), sum(col4) from table a
 where a.col5= 'criteria1' and a.col6 = 'criteria2' 
 and a.col7 = 'criteria3' and a.col8 = 'criteria4' group by col9

col2 是表的 id 和主键。 当我在查询浏览器中运行相同的查询时,它会给我正确的结果。 例如,如果浏览器返回的结果是 test,10,300,500 natove查询返回的结果不一样,是test,10,10,10

在本机查询结果中,结果中的第二列被复制到第三和第四列。 仅当 group by 添加到查询时才观察到此行为。如果我删除分组依据并对列求和,它会返回正确的结果。我在谷歌上研究过似乎存在一个问题,但没有找到答案。任何帮助将不胜感激

【问题讨论】:

【参考方案1】:

countsum 添加别名解决了这个问题。

固定查询如下所示。更改以粗体显示。

select col1, count(col2) as count1, sum(col3) as sum1, sum(col4) as sum2 from table a
where a.col5= 'criteria1' and a.col6 = 'criteria2' 
and a.col7 = 'criteria3' and a.col8 = 'criteria4' group by col9

【讨论】:

以上是关于Hibernate Native 查询在结果数组中返回了重复的结果,并在查询中添加了 group by的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate的批量查询——原生sql查询

Hibernate使用HQL,Criteria和Native SQL查询,哪个好?

hibernate框架之-查询结果集返回类型

SSH初体验系列--Hibernate--3--单值与分页查询

Hibernate HQL - query.list() 返回对象数组的对象数组

将从 Hibernate Native Query 返回的值映射到模型