您好我有一个hibernate查询,它给我一个类型为List<List<integer>>
的列表。
我怎么能迭代这个?我的hibernate查询是:
String SQL_QUERY = "select DISTINCT cbl.franchiseId,cbl.resellerId from
CustomerBusinessLocation cbl where cbl.cmcustLocId in (:locationId)";
Query query = getSession().createQuery(SQL_QUERY);
query.setParameterList("locationId", customerLocId);
List<List<Integer>> rc_list = query.list();
或者,有没有其他方法可以轻松提取这些数据?
答案 0 :(得分:4)
此查询不会返回List<List<Integer>>
。它返回List<Object[]>
。 Object[]
数组每个请求的字段包含一个元素。在您的情况下,每个Object[]
将在索引0处包含franchiseId
,在索引1处包含resellerId
。
这当然是在the reference documentation中解释的。
迭代应该如下所示:
List<Object[]> rows = query.list();
for (Object[] row : rows) {
Integer franchiseId = (Integer) row[0];
Integer resellerId = (Integer) row[1];
// ...
}
答案 1 :(得分:3)
要迭代嵌套列表,只需嵌套for循环。
for(List<Integer> list : rc_list){
for(Integer i : list){
//do stuff
}
}