我已经解决了以下hibernate查询,该查询完美地获取数据,但返回类型为List,如下所示。
public List<Object[]> Extractingc()
{
Criteria criteria = session.createCriteria(IDetails.class);
ProjectionList proList = Projections.projectionList();
proList.add(Projections.property("sem")); //is of string type
proList.add(Projections.property("tid")); //is of long type in pojo *******
criteria.setProjection(proList);
List<Object[]> settlementIdList = criteria.list();
return sst;
}
现在java代码中出现的问题是我将上述方法的结果放在代码中的一个列表中,如下所示......
List<Object[]> ioaist = ioabookandinstrumenthome.Extractingc();
现在我希望list的结果存储在一个字符串类型的hashset中,所以我创建了字符串类型的hashset,如下所示......
Set<String> ser = new HashSet<String>();
现在我将结果存储在set中,如下所示..
for (Object[] arr : ioaist) {
ser.add( (String) arr[0] , (String) arr[1] );
}
但它会抛出编译时异常,请告知我如何将结果存储在最终的集合
中答案 0 :(得分:0)
您的问题是ser.add( (String) arr[0] , (String) arr[1] );
您无法为一组添加2个值。您要查看Map.add(Key,Value),然后将Set<String> ser = new HashSet<String>();
更改为Map<String,String> ser = new HashMap<String,String>(); and
ser.add((String)arr [0],(String)arr [1]); {{ 1}} ser.put((String)arr [0],(String)arr [1]);`
否则
将to
更改为ser.add( (String) arr[0] , (String) arr[1] );