Hibernate合并查询结果集为实体类
2017-08-30 11:51
288 查看
用过mybatis的小伙伴可能都知道,我们可以查询两个表的部分字段合并为一个实体。然而用了Hibernate这么久了,居然还不知道也有此神器。
1.查询全部字段的情况下,如”from 实体类”,list中封装的对象为实体类本身,各属性都将得到填充。
2.只查询一个字段,默认情况下,list中封装的是Object对象。
3.查询两个或两个以上的字段,默认情况下,list中封装的是Object[],长度与所查询的字段数一致。
4.查询部分字段,与数据库保持一致,在hql中使用select new 包名.类名(属性1,属性2……) from 实体类,同时在实体类中添加带参的构造方法,参数的个数和顺序与(属性1,属性2……) 保持一致,这样我们得到的list中存放的依然是实体类的对象,所查询到的属性得到了填充,使用起来更为方便。
这条sql里面的user 和contract 是两个实体类,现在组合查询分别取出来两个实体类里面的部分字段,然后建立一个实体类Result。
说明
一般来说,Hibernate中我们常用的有以下几个功能1.查询全部字段的情况下,如”from 实体类”,list中封装的对象为实体类本身,各属性都将得到填充。
2.只查询一个字段,默认情况下,list中封装的是Object对象。
3.查询两个或两个以上的字段,默认情况下,list中封装的是Object[],长度与所查询的字段数一致。
4.查询部分字段,与数据库保持一致,在hql中使用select new 包名.类名(属性1,属性2……) from 实体类,同时在实体类中添加带参的构造方法,参数的个数和顺序与(属性1,属性2……) 保持一致,这样我们得到的list中存放的依然是实体类的对象,所查询到的属性得到了填充,使用起来更为方便。
配置
如果,我们想查询两个表的部分字段并以实体类的方式展示,如下:sql="select u.id,u.name,c.contact_name from user u,contract c where u.id = c.id"
这条sql里面的user 和contract 是两个实体类,现在组合查询分别取出来两个实体类里面的部分字段,然后建立一个实体类Result。
实体类
@Data @NoArgsConstructor @AllArgsConstructor public class UserVo { private Integer id; private String name; private String contactName; }
查询
String sql="select u.id,u.name,c.contact_name from user u,contract c where u.id = c.id" Query query = session.createSQLQuery(sql).setResultTransformer(Transformers.aliasToBean(UserVo.class)); return (List<UserVo>)query.list();
相关文章推荐
- hibernate进行多表查询每个表中各取几个字段,也就是说查询出来的结果集没有一个实体类与之对应如何解决?
- hibernate将sql或hql查询结果集映射为实体类 不需要映射文件
- 关于hibernate使用SQL查询,结果集无法映射到实体类上
- Hibernate SQLQuery 原生SQL 查询及返回结果集处理
- Hibernate中使用sql查询结果后再封装成实体类的问题
- hibernate多表查询后的结果集里有count计数结果
- Hibernate 查询结果集转成自定义模型类class
- 关于Column '*' not found 解决方案 Hibernate使用SQL查询返回实体类型,即返回某个类,或实体类
- Hibernate 多表查询结果集的处理
- Hibernate 可以用 select new map 查询出结果集 List,里面放一个一个 map。Mybatis 如何查出这样的 list?
- MySQL:UNION -- 多张表查询出的结果集合并
- mysql:如何合并两个查询的结果集的数据
- Hibernate SQLQuery 原生SQL 查询及返回结果集处理-1
- hibernate 通过Restrictions设置中文查询条件,不执行无结果集的问题
- hibernate使用原生SQL查询返回结果集的处理
- Hibernate 查询返回结果集为对象数组后的取值方法
- hibernate sql查询转化为实体类
- hibernate将普通查询的sql结果集转成对象列表
- hibernate根据某一字段查询,返回的实体类对象是null.