多表联合查询返回Object对象重新封装
在用hibernate作持久层数据管理时,常常有很多业务不能处理,为了解决问题我们必须用纯SQL查询了实现,用SQL返回的结果有时不是一张指定的表数据,此时我们就要在后台重新封装一个临时VO,专门来封装我们查询的数据,1.在底层查询我们不知道返回的是什么类型的容器,仔细观察发
·
在用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);//封装成咱们想要的容器 } |
更多推荐
已为社区贡献1条内容
所有评论(0)