在用hibernate作持久层数据管理时,常常有很多业务不能处理,为了解决问题我们必须用纯SQL查询了实现,用SQL返回的结果有时不是一张指定的表数据,此时我们就要在后台重新封装一个临时VO,专门来封装我们查询的数据,

1.在底层查询我们不知道返回的是什么类型的容器,仔细观察发现,其实是Object类型的,

2.解决方案是,我们必须将返回的List<Object>重新遍历进行呢封装,Iterator list=listobject.Iterator();

    List<Object> cources=query.list();
        Iterator i=cources.iterator();
List<Cource> cources=new ArrayList<Cource>();
        while(i.hasNext()){
            Cource c=new Cource();
            Object[] obj=(Object[])i.next();//将普通容器强制转换成Object数组,容器的每项对应数组的每项
            for(int j=0;j<obj.length;j++){
                c.setId( Integer.valueOf(obj[j].toString()));//循环将数组的每项依次封装在对象的属性中
            }
cources.add(c);//封装成咱们想要的容器
        }
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐