Hibernate中多表联合查询遇到的问题(原生态的SQL语句解决办法)

本文介绍了在Hibernate中如何进行多表联合查询并处理查询结果。通过创建一个临时实体类来保存结果,利用`session.createSQLQuery()`执行SQL语句,将查询结果转化为`List<Object>`。需要注意的是,查询结果是Object类型的集合,需要进行类型转换。文中给出了具体的代码示例,展示了如何遍历并转换查询结果。
摘要由CSDN通过智能技术生成

如何把多表的联合查询的结果放在一个没有和数据库映射的实体类?

首先,建立一个用于保存联合查询结果的实体类。

第二,建立一个sql语句,一般情况下。我喜欢使用 SQLQuery query = session.createSQLQuery("sql语句");这样的话就可以省去增加实体类的那一步操作,即addEntity()。

在前期做的时候就遇到了一个误区,我以为结果是新建实体类的一个集合,但是没有结果的输出,其实结果是一个Object的集合,List<Object> list= query.list();然后接下来的工作就很简单了,遍历list集合,再把object数组中的数据通过新建实体类中的set方法保存在对象当中。但是数组中的数据是object类型的所以在转换的时候需要数据类型的转换。对于int类型的需要它的包装类Integer.parseInt(objs[0].toString()),对于String类型强制类型转换即可。

贴一下代码,防止遗忘

SQLQuery query = session.createSQLQuery("select tea_orderdetails.od_id od_id, tea_info.t_id t_id,tea_user.u_name u_name,tea_info.t_name t

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值