如何把多表的联合查询的结果放在一个没有和数据库映射的实体类?
首先,建立一个用于保存联合查询结果的实体类。
第二,建立一个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