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 执行过程 两张表进行 ...
随机推荐
- TF坐标变换
一.什么是TF 二.TF使用方法 三.TF包内的指令工具 四.相关API 1.广播变换发布坐标之间的坐标关系 #include <ros/ros.h> #include <tf ...
- 101 删除排序数组中的重复数字 II
原题网址:http://www.lintcode.com/zh-cn/problem/remove-duplicates-from-sorted-array-ii/# 跟进“删除重复数字”: 如果可以 ...
- 01-python 学习第一天
今天是学习python语言的第一天,通过中国大学MOOC网的相关课程和其他在线教程,对python 语言有了初步的认识.今天我记住了<人生苦短,Python是岸>这句话.如果有人学习,建议 ...
- mybatis-环境配置-基本案例-和hibernate区别
Mybatis第一天 1. Mybatis介绍 MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了goo ...
- boost 字符串大小写转换
示例代码如下: #include <boost/algorithm/algorithm.hpp> #include <iostream> using namespace std ...
- 3、mysql读写性能优化方法
1.当表格特别多的时候,所新建的表格一定注意索引,数据库内部对索引的处理能够很好的优化查询读写性能
- JZOJ5894【NOIP2018模拟10.5】同余方程
题目 Description
- NOIP2016提高A组 B题 【HDU3072】【JZOJ4686】通讯
题目描述 “这一切都是命运石之门的选择.” 试图研制时间机器的机关SERN截获了中二科学家伦太郎发往过去的一条短 信,并由此得知了伦太郎制作出了电话微波炉(仮). 为了掌握时间机器的技术,SERN总部 ...
- python登录aspx网站
1.安装模块 2.准备aspx登录页面 3.示例代码 #coding:utf-8 import re from bs4 import BeautifulSoup import gzip import ...
- wsoj「G2016 SCOI2018 Round #12」建筑师
传送门 小半个月前的测试,现在翻出来. 考试时我和sxyA了这题. 当时随便搞了个dp,dp[i][j]表示i个数能看到j个的情况数,考虑新加入一个比之前i-1个数都小的数,能看到它的情况是它加到第一 ...