gpt4 book ai didi

java - Hibernate 的 Projections.countDistinct 会产生意想不到的结果

转载 作者:搜寻专家 更新时间:2023-10-31 20:06:44 29 4
gpt4 key购买 nike

我有以下代码


Criteria criteria = this.getCriteriaForClass(DeviceListItem.class);
Projection rowCountProjection = Projections.countDistinct("color");
criteria.setProjection(rowCountProjection);
int rowCount = ((Long) criteria.uniqueResult()).intValue();
return rowCount;

,其目的是找出名为“color”的字段具有不同值的行数。问题是


Projections.countDistinct("color");

返回与

相同数量的结果

Projections.count("color");

即使在数据库 View 中有多个具有相同颜色的行。将 Criteria 对象转换为 SQL 时,我看到 Hibernate 生成的 SQL 是


select count(this_.COLOR) as y0_ from DEVICESLIST_VIEW this_ where 1=1

我希望它是什么时候


select count(distinct this_.COLOR) as y0_ from DEVICESLIST_VIEW this_ where 1=1

为什么它没有像预期的那样工作,有什么补救措施吗?不幸的是,在这种情况下我无法选择使用 HQL。

最佳答案

这是一个错误,已在 3.5.2 中修复:HHH-4957 .

关于java - Hibernate 的 Projections.countDistinct 会产生意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4616607/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com