从Object对象中封装了其它对象,怎样取出呢?(Hibernate查询结果处理)

在使用Hibernate进行多表查询时,遇到查询结果是一个包含User和Department对象的Object数组。通过遍历Object[]数组,强转为Object[],然后分别将User和Department对象解封出来,例如:User user = (User)objs[0]; Department department = (Department)objs[1]; 这样即可提取所需对象。

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

前几天,在进行Hibernate多表查询时,遇到了从Object对象中取出其它对象的问题,问题如下:
以下两个类:
User.class

public class User{
    private String userid;
    private String uname;
    private String upass;

    ...(getter\setter方法、构造方法)
}

Department.class

public class Department{
    private String departNo;//部门编号
    private String departName;//部门名

    ...(getter\setter方法、构造方法)
}

        String hql = "FROM  User u,Department d WHERE u.userid = d.userid";//构建HQL
        Query qr = session.createQuery(hql);//创建HQL查询
        List list = qr.list();//执行查询
        return list;

这样查询的结果是一个Object[]数组,Object数组中是Object对象,而Object对象中封装的是User对象和Department对象。
我尝试过:以上的hql和下面:

    String hql = "SELECT u,d FROM User u,Department d WHERE u.userid = d.userid "

查询来的结果相同,可以发现

    String hql = "FROM  User u,Department d WHERE u.userid = d.userid "

就是把所有的记录查询出来,再封装到对应的对象中,再封装到Object对象。哈哈。

那么问题来了?怎样取出User对象和Department对象呢?

1.先遍历Object[]数组,得到Object对象object。

2.Object[] objs = (Object[])object;在把Object对象强转成Object数组。

3.所以,User user = (User)objs[0]; Department department = (Department)objs[1];

这样就取出来了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值