【发布时间】:2026-01-14 04:15:01
【问题描述】:
我有Hibernatecriteria查询如下:
Criteria criteria = session.createCriteria(Test.class);
ProjectionList projList = Projections.projectionList();
projList.add(Projections.property("Month"));
projList.add(Projections.property("Year"));
criteria.setProjection(Projections.distinct(projList));
在这里,我尝试使用类似于
的月份和年份来获取不同的值select distinct Month, Year from table;
最后在完成查询后,我使用list() 来获取条件:
criteriaList = criteria.list();
现在我有 criteriaList 和 Object 两列数据 Month 和 Year。我想将criteriaList 中的查询结果仅列出Month 到List<Integer>。
我尝试循环遍历criteriaList 并将获取的Object 转换为List<Integer>,但没有成功。我怎样才能从返回的两列中只获取第一列(Month)?
注意:将投影设置为仅一列 (Month) 将无济于事,因为我需要在 Month 和 Year 上都不同
更新:
我使用过以下类型:
List<Object[]> criteriaList = Collections.emptyList();
List<Integer> Month = Collections.emptyList();
由于返回的月份数会有所不同,我想将获取的月份添加到 List<Integer> 以执行进一步的操作。
【问题讨论】:
标签: java hibernate hql criteria