使用 Hibernate 的标准和投影来选择多个不同的列

问题描述 投票:0回答:1

使用 Hibernate 的 Criteria,我想执行相当于:

select distinct uspscity, state from citycomplete where USPSCITY = 'HOUSTON'

我认为执行以下操作会产生我想要的结果:

ProjectionList projList = new ProjectionList();
projList.add(Projections.distinct(Projections.property("id.state")));
projList.add(Projections.distinct(Projections.property("id.uspsCity")));
criteria.setProjection(projList);

但是,这实际上执行的是类似的操作:

select distinct uspscity, distinct state from citycomplete where USPSCITY = 'HOUSTON'

这显然会引发错误。

除了不使用 Criteria 之外,还有其他解决方案吗?

谢谢,

布兰登

sql hibernate criteria distinct hibernate-criteria
1个回答
54
投票
ProjectionList projList = Projections.projectionList();
projList.add(Projections.property("id.state"));
projList.add(Projections.property("id.uspsCity"));
criteria.setProjection(Projections.distinct(projList));
© www.soinside.com 2019 - 2024. All rights reserved.