如何迭代嵌套列表

时间:2011-08-22 17:37:27

标签: java hibernate hql

您好我有一个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();

或者,有没有其他方法可以轻松提取这些数据?

2 个答案:

答案 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
    }
}