我已经解决了以下hibernate查询,该查询完美地获取数据,但返回类型为List,如下所示。
public List<Object[]> Extractingc()
{
Criteria criteria = session.createCriteria(IDetails.class);
ProjectionList proList = Projections.projectionList();
proList.add(Projections.property("ter")); //is of string type
proList.add(Projections.property("sem")); //is of string type
proList.add(Projections.property("tid")); //is of long type in pojo *******
proList.add(Projections.property("def")); //is of string type
criteria.setProjection(proList);
List<Object[]> settlementIdList = criteria.list();
return sst;
}
现在java代码中出现的问题是我将上述方法的结果放在代码中的一个列表中,如下所示......
List<Object[]> ioaist = = ioabookandinstrumenthome.Extractingc();
现在我已经创建了一个集合,因为在集合中我希望存储所有4个参数的组合,即sem + tid + ter + def在我正在进行的集合中,如下所示...
Set<String> st = new HashSet<String>();
for (Object[] arr : ioabookandinstrumenthomelist)
{
s=((String) arr[0]+ (String) arr[1]+ (String) arr[2]+ (String) arr[3]); //*** getting class cast exception
st.add(s);
s=null;
}
但是我得到了类强制转换异常,因为我的参数tid是long类型,它不是用字符串
转换的