今天遇到这个问题.情况是hibernate选择记录集后转化为对象时出现,
原因是返回的集合依据 detachedCriteria 的不同可能是多种类型的 mode集合.这时候就需要 List<Object[]> 但有时候却只返回一种 model类型,这时候又需要具体的指定,如 List<Comment>
我是这样解决的:
List<?> c = hibernateTemplate.findByCriteria(detachedCriteria,firstResult,maxResults);
List<Comment> firstList = new ArrayList<Comment>();
try{
@SuppressWarnings("unchecked")
List<Object[]> co = (List<Object[]>) c;
for(int i=0;i<c.size();i++){
firstList.add((Comment) co.get(i)[1]);//co.get(i)[1] 或者 co.get(i)[0] 需要依据实际选定
}
}catch(ClassCastException e){
for(int i=0;i<c.size();i++){
firstList.add((Comment) c.get(i));
}
}

本文解决了一个在使用Hibernate查询时遇到的问题:如何将查询结果集从集合类型转换为具体对象类型,通过使用泛型和异常处理实现灵活转换。
1055

被折叠的 条评论
为什么被折叠?



