多表联合查询返回Object对象重新封装

本文介绍使用Hibernate进行数据库操作时,如何处理复杂SQL查询返回的非标准结果集。通过示例展示了如何将List<Object>类型的数据转换为自定义的VO对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在用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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值