Hibernate之HQL多表查询
多表的查询进行使用HQL语句进行查询,HQL语句和SQL语句的查询语法比较类似
- 内连接查询
- 显示内连接
- select * from customer c inner join orders o on c.cid = o.cno
- 隐式内连接
- select * from customers c.orders o where c.cid = o.cno;
- 显示内连接
- 外连接查询
- 左连接查询
- select * from customers c left join orders o on c.cid = o.cno
- 右连接查询
- select * from customer c right join orders o on c.cid = o.cno
HQL 的多表查询
- 迫切和非迫切
- 非迫切返回结果是Object[]
- 迫切连接返回的结果是对象,把客户的信息封装到客户的对象中,把订单信息封装到客户的set集合中。
内连接查询
- 左连接查询
- 内连接使用 inner join,默认返回的是Object数组
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
List<Customer> list = session.beginTransaction();
Set<Customer> set = new HashSet<Customer>(list);
for(Customer customer:set){System.out.println(customer);
}
tr.commit();
迫切内连接 :inner join fetch,返回的是实体对象
Session session = HibernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
List<Customer> list = session.createQuery("from Customer c inner join fetch c.linkmans").list();
Set<Customer> set = new HashSet<Customer>(list);//去掉重复
for(Customer customer : set){System.out.println(customer);
}
tr.commit;
左外连接查询
左外连接:封装成List<Object[]>
迫切左外连接
Session session = HIbernateUtils.getCurrentSession();
Transaction tr = session.beginTransaction();
List<Customer> list = session.createQuery("from Customer c left join fetch c.linkmans").list();
for(Customer customer : set){System.out.println(customer);
}
tr.commit();
Hibernate之HQL多表查询相关推荐
- Hibernate 原生SQL多表查询时-字段名相同-查询数据覆盖问题
问题描述 实际工作中通过Hibernate进行多表查询 两个实体类有相同属性 如下图所示 t_project_iter和t_project_story 表中TITLE 中字段名称相同 通过如下图方式进 ...
- Hibernate中hql的基本查询、条件查询、排序插叙、分页查询、投影查询
hql语句和sql语句不同,当我们使用hql语句查询时,要把SQL语句的表写成 实体类的类名,字段写成实体类的属性 基本查询:查出数据库中所有的数据 代码如下: //基本查询,查询所有的实体@Test ...
- hibernate mysql 多表查询_查询hibernate表程序
Hibernate初识 简介 相信学过SSH2框架的同学们对Hiberate一点也不陌生.Hibernate是Gavin King于2001年开始,作为EJB2风格实体bean的替代品开发的对象关系映 ...
- HQL 多表联合查询
HQL 联表查询语句 select h from Hytxbz as h,Tgbzk as t where h.hytxbzid=t.hytxbzid and t.bztgid=:bztgid 如果想 ...
- Hibernate中的HQL的基本常用小例子,单表查询与多表查询
<span style="font-size:24px;color:#3366ff;">本文章实现HQL的以下功能:</span> /*** hql语法:* ...
- hibernate mysql 关联查询_hibernate 查询缓存,以及在关联表查询缓存下使用HQL,而不是sql去查询...
什么是查询缓存? 也就是如果开启了查询缓存, 在 没有使用二级缓存的情况下,会 缓存第一次查询出来的数据的id. 第二次查询的时候, 如果查询的参数和查询语句没有变化,那么就会使用 第一次查询的出来的 ...
- Spring Hibernate JPA 联表查询 复杂查询
(转自:http://www.cnblogs.com/jiangxiaoyaoblog/p/5635152.html) 今天刷网,才发现: 1)如果想用hibernate注解,是不是一定会用到jpa的 ...
- Hibernate(九)HQL查询
一.Hibernate提供的查询方式 OID查询方式:主键查询.通过get()或者load()方法加载指定OID的对象查询结果为一个 HQL查询方式:通过Query接口使用HQL语言进行查询 QBC查 ...
- java多对多关联数据操作,hibernate实施多对多关联查询时,关联表数据被删除
hibernate执行多对多关联查询时,关联表数据被删除 本帖最后由 binbb521 于 2012-12-04 11:48:29 编辑 S2SH框架开发的网站,执行两个多对多关系的表查询时,关联两个 ...
最新文章
- DNS服务,A记录,URL转发,MX记录,NS记录,CNAME记录,解释与设置教
- 不从事编程、学python有用吗-为什么你觉得C语言什么都不能做,学了没用?不可能的...
- python语言继承6.3节例6-1中的person_第6.3节 Python动态执行之动态编译的compile函数...
- Python学习入门基础教程(learning Python)--5.5 Python写操作详解
- kitti数据集坐标转换
- 黑客(一):黑客守则
- 【OpenGL开发】glut和freeglut下载及配置
- imagej得到灰度图数据_教你用免费软件Image J对WB结果进行灰度分析!
- QQ登录界面测试用例设计:
- 正确模仿别人的php项目,一个模仿oso的php论坛程序(之一)第1/2页
- 新网站链接提交入口攻略
- css before 箭头,伪元素beforeafter以及制作三角箭头
- 常见测试概念-分级测试、灰度测试、AB测试
- 2022年8月11日:使用 ASP.NET Core 为初学者构建 Web 应用程序--使用 ASP.NET Core 控制器创建 Web API(没看懂,需要再看一遍)
- 22.IO引脚复用和映射原理与配置
- Ueditor中增加迅雷下载支持
- win10安装quicktime
- 采购月度业绩贡献度报表
- C#如何判断某个日期是否为今天
- swiper轮播-可支持触摸滑动(整理)