多表的查询进行使用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多表查询相关推荐

  1. Hibernate 原生SQL多表查询时-字段名相同-查询数据覆盖问题

    问题描述 实际工作中通过Hibernate进行多表查询 两个实体类有相同属性 如下图所示 t_project_iter和t_project_story 表中TITLE 中字段名称相同 通过如下图方式进 ...

  2. Hibernate中hql的基本查询、条件查询、排序插叙、分页查询、投影查询

    hql语句和sql语句不同,当我们使用hql语句查询时,要把SQL语句的表写成 实体类的类名,字段写成实体类的属性 基本查询:查出数据库中所有的数据 代码如下: //基本查询,查询所有的实体@Test ...

  3. hibernate mysql 多表查询_查询hibernate表程序

    Hibernate初识 简介 相信学过SSH2框架的同学们对Hiberate一点也不陌生.Hibernate是Gavin King于2001年开始,作为EJB2风格实体bean的替代品开发的对象关系映 ...

  4. HQL 多表联合查询

    HQL 联表查询语句 select h from Hytxbz as h,Tgbzk as t where h.hytxbzid=t.hytxbzid and t.bztgid=:bztgid 如果想 ...

  5. Hibernate中的HQL的基本常用小例子,单表查询与多表查询

    <span style="font-size:24px;color:#3366ff;">本文章实现HQL的以下功能:</span> /*** hql语法:* ...

  6. hibernate mysql 关联查询_hibernate 查询缓存,以及在关联表查询缓存下使用HQL,而不是sql去查询...

    什么是查询缓存? 也就是如果开启了查询缓存, 在 没有使用二级缓存的情况下,会 缓存第一次查询出来的数据的id. 第二次查询的时候, 如果查询的参数和查询语句没有变化,那么就会使用 第一次查询的出来的 ...

  7. Spring Hibernate JPA 联表查询 复杂查询

    (转自:http://www.cnblogs.com/jiangxiaoyaoblog/p/5635152.html) 今天刷网,才发现: 1)如果想用hibernate注解,是不是一定会用到jpa的 ...

  8. Hibernate(九)HQL查询

    一.Hibernate提供的查询方式 OID查询方式:主键查询.通过get()或者load()方法加载指定OID的对象查询结果为一个 HQL查询方式:通过Query接口使用HQL语言进行查询 QBC查 ...

  9. java多对多关联数据操作,hibernate实施多对多关联查询时,关联表数据被删除

    hibernate执行多对多关联查询时,关联表数据被删除 本帖最后由 binbb521 于 2012-12-04 11:48:29 编辑 S2SH框架开发的网站,执行两个多对多关系的表查询时,关联两个 ...

最新文章

  1. DNS服务,A记录,URL转发,MX记录,NS记录,CNAME记录,解释与设置教
  2. 不从事编程、学python有用吗-为什么你觉得C语言什么都不能做,学了没用?不可能的...
  3. python语言继承6.3节例6-1中的person_第6.3节 Python动态执行之动态编译的compile函数...
  4. Python学习入门基础教程(learning Python)--5.5 Python写操作详解
  5. kitti数据集坐标转换
  6. 黑客(一):黑客守则
  7. 【OpenGL开发】glut和freeglut下载及配置
  8. imagej得到灰度图数据_教你用免费软件Image J对WB结果进行灰度分析!
  9. QQ登录界面测试用例设计:
  10. 正确模仿别人的php项目,一个模仿oso的php论坛程序(之一)第1/2页
  11. 新网站链接提交入口攻略
  12. css before 箭头,伪元素beforeafter以及制作三角箭头
  13. 常见测试概念-分级测试、灰度测试、AB测试
  14. 2022年8月11日:使用 ASP.NET Core 为初学者构建 Web 应用程序--使用 ASP.NET Core 控制器创建 Web API(没看懂,需要再看一遍)
  15. 22.IO引脚复用和映射原理与配置
  16. Ueditor中增加迅雷下载支持
  17. win10安装quicktime
  18. 采购月度业绩贡献度报表
  19. C#如何判断某个日期是否为今天
  20. swiper轮播-可支持触摸滑动(整理)

热门文章

  1. 《视觉Slam十四讲》第1讲
  2. 在华为云主机中添加新的云盘
  3. 一次性纸杯包含的测试点
  4. Ubuntu查看端口是否正在被使用
  5. 等待煎熬 杭州融博面试已经通过
  6. 虫师『软件测试』基础 与 测试杂谈
  7. 来了啊?进来坐,进来坐!
  8. 2013年考研英语二真题
  9. 看《中国历代政治得失》
  10. 表单输入事件辨析-oninput、onkeyup、onchange 开发须知!