所以现在我有一个包含一段看起来像这样的代码的程序......
Criteria crit = session.createCriteria(Product.class);
ProjectionList projList = Projections.projectionList();
projList.add(Projections.max("price"));
projList.add(Projections.min("price"));
projList.add(Projections.countDistinct("description"));
crit.setProjection(projList);
List results = crit.list();
我想迭代结果。所以提前感谢您提供的任何帮助/建议。
答案 0 :(得分:14)
在这种情况下,您将拥有一个列表,其元素是以下数组: [maxPrice,minPrice,计数]。
....
List<Object[]> results = crit.list();
for (Object[] result : results) {
Integer maxPrice = (Integer)result[0];
Integer minPrice = (Integer)result[1];
Long count = (Long)result[2];
}
答案 1 :(得分:5)
你可以在List中使用Generic,但是对于每个但是对于当前代码,你可以执行以下迭代
for(int i = 0 ; i < results.size() ; i++){
Foo foo = (Foo) results.get(i);
}
或者更好的是为每个循环提供可读性
for(Foo foo: listOfFoos){
// access foo here
}
答案 2 :(得分:2)
你可以这样做:
for (Object result : results) {
// process each result
}