day36 04-Hibernate检索方式:多表连接查询







返回的是一个List集合,这个List集合的泛型是一个Object数组。最后会拿到一个里面放Object数组的List集合。


HQL内连接查询,发出SQL语句查询出来的结果集被Hibernate封装成Object数组(Object[])的集合。所以不会产生重复数据。但是必须得是主表对应的类Customer的toString()方法打印出Order,而从表对应的类Order不打印customer对象。
Query query = session.createQuery("from Customer c inner join c.orders");//Query接口
List<Object[]> list = query.list();
for (Object[] objects : list) {
System.out.println(Arrays.toString(objects));
}

Query query = session.createQuery("from Customer c inner join fetch c.orders");//Query接口
List<Customer> list = query.list();
for (Customer customer : list) {//关联查询的时候会得到多少条记录?
System.out.println(customer);//两个表的关联查询,内连接查询会得到30条记录
//为什么会有重复的数据?因为这是封装的问题
}

Query query = session.createQuery("from Customer c inner join fetch c.orders");//Query接口
List<Customer> list = query.list();
for (Customer customer : list) {//关联查询的时候会得到多少条记录?
System.out.println(customer);//两个表的关联查询,内连接查询会得到30条记录
//为什么会有重复的数据?因为这是封装的问题
}

Query query = session.createQuery("select distinct c from Customer c inner join fetch c.orders");
List<Customer> list = query.list();
for (Customer customer : list) {//关联查询的时候会得到多少条记录?
System.out.println(customer);//两个表的关联查询,内连接查询会得到30条记录
//为什么会有重复的数据?因为这是封装的问题
}

Query query = session.createQuery("select distinct c from Customer c inner join fetch c.orders");//Query接口
List<Customer> list = query.list();
for (Customer customer : list) {//关联查询的时候会得到多少条记录?
System.out.println(customer);//两个表的关联查询,内连接查询会得到30条记录
//为什么会有重复的数据?因为这是封装的问题
}

Query query = session.createQuery("from Order o inner join o.customer");//Query接口
List<Object[]> list = query.list();
for (Object[] objects : list) {
System.out.println(Arrays.toString(objects));
}

Query query = session.createQuery("from Order o inner join fetch o.customer");//Query接口
List<Order> list = query.list();
for (Order order : list) {
System.out.println(order);
}

Query query = session.createQuery("select distinct o from Order o inner join fetch o.customer");//Query接口
List<Order> list = query.list();
for (Order order : list) {
System.out.println(order);
}

迫切内连接查出来的也是30条数据,但是为什么会有很多重复的数据?因为是封装的问题。









day36 04-Hibernate检索方式:多表连接查询的更多相关文章
- Hibernate入门6.Hibernate检索方式
Hibernate入门6.Hibernate检索方式 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv Hibernate的整体框架已经 ...
- hibernate 实现多表连接查询(转载)
http://www.cnblogs.com/lihuiyy/archive/2013/03/28/2987531.html 为了方便,直接粘过来,方便查看.不收藏了 Hibernate主要支持两种查 ...
- (转) Hibernate检索方式概述
http://blog.csdn.net/yerenyuan_pku/article/details/70554816 Hibernate检索方式概述 我们在对数据库的操作中,最常用的是select, ...
- Mysql表连接查询
原文地址: https://www.cnblogs.com/qiuqiuqiu/p/6442791.html 1.内联接(典型的联接运算,使用像 = 或 <> 之类的比较运算符).包括相等 ...
- Access数据库多表连接查询
第一次在Access中写多表查询,就按照MS数据库中的写法,结果报语法错,原来Access的多表连接查询是不一样的 表A.B.C,A关联B,B关联C,均用ID键关联 一般写法:select * fro ...
- PostgreSQL-join多表连接查询和子查询
一.多表连接查询 1.连接方式概览 [inner] join 内连接:表A和表B以元组为单位做一个笛卡尔积,记为表C,然后在C中挑选出满足符合on 语句后边的限制条件的内容. left [outer] ...
- SQL的多表连接查询
SQL的多表连接查询 多表连接查询具有两种规范,SQL92和SQL99规范. SQL92规范支持下列多表连接查询: (1)等值连接: (2)非等值连接: (3)外连接: (4)广义笛卡尔积: SQL9 ...
- django ORM model filter 条件过滤,及多表连接查询、反向查询,某字段的distinct
版权归作者所有,任何形式转载请联系作者.作者:petanne(来自豆瓣)来源:https://www.douban.com/note/301166150/ 1.多表连接查询:感觉django太NX了. ...
- IBatis.Net 表连接查询(五)
IBatis.Net之多表查询: 一.定制实际对应类的方式 首先配置多表的测试数据库,IBatis.Net之Oracle表连接查询配置: 首先新建两张表如下: 为两张表建立外键: ALTER TABL ...
- 表连接查询(2-n)
一 概述 1 背景 理论上将全部数据放到同一张表中很难实现,实际上即使实现了,表也很庞大,很冗杂,不便于查询与维护,因此将不同的数据存放到不同的表中,需要时连接各表进行查询. 2 执行过程 两张表进行 ...
随机推荐
- springboot与分布式(zookeeper+dubbo)
docker安装zookeeper命令: docker pull zookeeper:3.4.14 docker启动zookeeper命令: docker run --name zk01 -p 218 ...
- Joomla - 菜单系统 (从创建到前端页面显示的过程)
在 Joomla 中,菜单是最常用且重要的功能之一,一般用于承载页面内容和各内容间的切换.导航等,演绎着非常重要的角色: 一.新建菜单 进入后台,点击顶栏菜单 -> 菜单管理 -> 点击新 ...
- ArcMap10.2 中制作符号库
今天在发布地图服务时,发现地图中的3D符号没法用,出现”00013“错误,如下:
- 05-python 学习第五天-简单验证码
通过python 随机数可以制作简单的验证码. 1.0版本来了,这验证码,只有一个码,功能虽然达不到,逻辑还是准确的,目前还不能算是验证码,但是我们会继续完善的. import random # 导入 ...
- <每日一题>题目25:快速排序
''' 快速排序:分而治之,一分为二进行排序 ''' import cProfile import random def quick_sort(nums): if len(nums) <= 1: ...
- Leetcode240. Search a 2D Matrix II搜索二维矩阵2
编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性: 每行的元素从左到右升序排列. 每列的元素从上到下升序排列. 示例: 现有矩阵 matrix ...
- [转]WPF命令集 Command
在我们日常的应用程序操作中,经常要处理各种各样的命令和进行相关的事件处理,比如需要复制.粘贴文本框中的内容;上网查看网页时,可能需要返回上一网页查看相应内容;而当我们播放视频和多媒体时,我们可能要调节 ...
- leetcode 75 Sorted Colors
两种解法 1)记录0和1的个数 然后按照记录的个数将0和1重新放入原数组,剩下的补2 2)双指针left,right left表示0~left-1都为0,即i之前都为0 right表示right+1~ ...
- Java 如何在线打开编辑word文档?
在一般的OA项目中经常会遇到在线处理Office文档的需求,先下载文件,编辑保存后再选择文件上传的方式太过原始,在如今早已是Office Online的时代,没有用户能接受这种蹩脚的操作方式. 虽然微 ...
- Spring BatchSqlUpdate.updateByNamedParam例子
关键在于定义参数和sql语句,代码如下: int dstColCount=dstColNamesList.size(); String insSql="insert into "+ ...