@Test
public void test11(){
Session ss=HibernateUtil.getSession();
//根据员工名称(SCOTT)找到和他所在的部门的其他员工的信息
String hql=" select e from Emp e inner join e.dept";//下面一条等效
//String hql="from Emp e inner join fetch e.dept";
Query qr=ss.createQuery(hql);
List<Emp> el =qr.list();
System.out.println(el.size());
for (Emp emp : el) {
System.out.println(emp);
}
HibernateUtil.closeResource(ss);
}

inner join代码

inner join输出27条结果,但是分块输出,条件查询也执行了几次.

Hibernate:
select
emp0_.empno as empno1_1_,
emp0_.ename as ename2_1_,
emp0_.job as job3_1_,
emp0_.mgr as mgr4_1_,
emp0_.hiredate as hiredate5_1_,
emp0_.sal as sal6_1_,
emp0_.comm as comm7_1_,
emp0_.deptno as deptno8_1_
from
EMP2 emp0_
inner join
DEPT2 dept1_
on emp0_.deptno=dept1_.deptno
24
Hibernate:
select
dept0_.deptno as deptno1_0_0_,
dept0_.dname as dname2_0_0_,
dept0_.loc as loc3_0_0_
from
DEPT2 dept0_
where
dept0_.deptno=?
Emp [empNo=7369, eName=SMITH, job=CLERK, mgr=7902, hireDate=1980-12-17 00:00:00.0, sal=800.0, comm=null, dept=Dept [deptNo=20, dName=RESEARCH, loc=DALLAS]]
Hibernate:
select
dept0_.deptno as deptno1_0_0_,
dept0_.dname as dname2_0_0_,
dept0_.loc as loc3_0_0_
from
DEPT2 dept0_
where
dept0_.deptno=?
Emp [empNo=7499, eName=ALLEN, job=SALESMAN, mgr=7698, hireDate=1981-02-20 00:00:00.0, sal=1600.0, comm=300.0, dept=Dept [deptNo=30, dName=SALES, loc=CHICAGO]]
Emp [empNo=7521, eName=WARD, job=SALESMAN, mgr=7698, hireDate=1981-02-22 00:00:00.0, sal=1250.0, comm=500.0, dept=Dept [deptNo=30, dName=SALES, loc=CHICAGO]]
Emp [empNo=7566, eName=JONES, job=MANAGER, mgr=7839, hireDate=1981-04-02 00:00:00.0, sal=2975.0, comm=null, dept=Dept [deptNo=20, dName=RESEARCH, loc=DALLAS]]
Emp [empNo=7654, eName=MARTIN, job=SALESMAN, mgr=7698, hireDate=1981-09-28 00:00:00.0, sal=1250.0, comm=1400.0, dept=Dept [deptNo=30, dName=SALES, loc=CHICAGO]]
Emp [empNo=7698, eName=BLAKE, job=MANAGER, mgr=7839, hireDate=1981-05-01 00:00:00.0, sal=2850.0, comm=null, dept=Dept [deptNo=30, dName=SALES, loc=CHICAGO]]
Hibernate:
select
dept0_.deptno as deptno1_0_0_,
dept0_.dname as dname2_0_0_,
dept0_.loc as loc3_0_0_
from
DEPT2 dept0_
where
dept0_.deptno=?
Emp [empNo=7782, eName=CLARK, job=MANAGER, mgr=7839, hireDate=1981-06-09 00:00:00.0, sal=2450.0, comm=null, dept=Dept [deptNo=10, dName=ACCOUNTING, loc=NEW YORK
]]
Emp [empNo=7788, eName=SCOTT, job=ANALYST, mgr=7566, hireDate=1987-04-19 00:00:00.0, sal=3000.0, comm=null, dept=Dept [deptNo=20, dName=RESEARCH, loc=DALLAS]]
Emp [empNo=7839, eName=KING, job=PRESIDENT, mgr=null, hireDate=1981-11-17 00:00:00.0, sal=5000.0, comm=null, dept=Dept [deptNo=10, dName=ACCOUNTING, loc=NEW YOR
K]]
Emp [empNo=7844, eName=TURNER, job=SALESMAN, mgr=7698, hireDate=1981-09-08 00:00:00.0, sal=1500.0, comm=0.0, dept=Dept [deptNo=30, dName=SALES, loc=CHICAGO]]
Emp [empNo=7876, eName=ADAMS, job=CLERK, mgr=7788, hireDate=1987-05-23 00:00:00.0, sal=1100.0, comm=null, dept=Dept [deptNo=20, dName=RESEARCH, loc=DALLAS]]
Emp [empNo=7900, eName=JAMES, job=CLERK, mgr=7698, hireDate=1981-12-03 00:00:00.0, sal=950.0, comm=null, dept=Dept [deptNo=30, dName=SALES, loc=CHICAGO]]
Emp [empNo=7902, eName=FORD, job=ANALYST, mgr=7566, hireDate=1981-12-03 00:00:00.0, sal=3000.0, comm=null, dept=Dept [deptNo=20, dName=RESEARCH, loc=DALLAS]]
Emp [empNo=7934, eName=MILLER, job=CLERK, mgr=7782, hireDate=1982-01-23 00:00:00.0, sal=1300.0, comm=null, dept=Dept [deptNo=10, dName=ACCOUNTING, loc=NEW YORK]
]
Hibernate:
select
dept0_.deptno as deptno1_0_0_,
dept0_.dname as dname2_0_0_,
dept0_.loc as loc3_0_0_
from
DEPT2 dept0_
where
dept0_.deptno=?
Emp [empNo=67, eName=瑞士队, job=MANAGER, mgr=2018, hireDate=2018-06-21 21:37:53.0, sal=3000.0, comm=100.0, dept=Dept [deptNo=64, dName=WorldCup, loc=Moscow]]
Emp [empNo=19, eName=韩国队, job=MANAGER, mgr=7788, hireDate=2018-06-12 00:00:00.0, sal=3000.0, comm=100.0, dept=Dept [deptNo=20, dName=RESEARCH, loc=DALLAS]]
Hibernate:
select
dept0_.deptno as deptno1_0_0_,
dept0_.dname as dname2_0_0_,
dept0_.loc as loc3_0_0_
from
DEPT2 dept0_
where
dept0_.deptno=?
Emp [empNo=13, eName=InverseT, job=TEST, mgr=7788, hireDate=2018-06-28 11:16:49.0, sal=1000.0, comm=100.0, dept=Dept [deptNo=86, dName=HBM, loc=Diego]]
Hibernate:
select
dept0_.deptno as deptno1_0_0_,
dept0_.dname as dname2_0_0_,
dept0_.loc as loc3_0_0_
from
DEPT2 dept0_
where
dept0_.deptno=?
Emp [empNo=88, eName=Poly, job=Athlete, mgr=7788, hireDate=2018-06-28 10:21:47.0, sal=3000.0, comm=100.0, dept=Dept [deptNo=90, dName=FOOTBALL, loc=Seattle]]
Emp [empNo=89, eName=Odin, job=Athlete, mgr=7788, hireDate=2018-06-28 10:21:47.0, sal=3000.0, comm=100.0, dept=Dept [deptNo=90, dName=FOOTBALL, loc=Seattle]]
Hibernate:
select
dept0_.deptno as deptno1_0_0_,
dept0_.dname as dname2_0_0_,
dept0_.loc as loc3_0_0_
from
DEPT2 dept0_
where
dept0_.deptno=?
Emp [empNo=83, eName=SET, job=主播, mgr=7788, hireDate=2018-06-28 10:08:45.0, sal=3000.0, comm=100.0, dept=Dept [deptNo=81, dName=BigDept, loc=NEWYORK]]
Emp [empNo=87, eName=InverseF, job=TEST, mgr=7788, hireDate=2018-06-28 10:18:08.0, sal=1000.0, comm=100.0, dept=Dept [deptNo=86, dName=HBM, loc=Diego]]
Hibernate:
select
dept0_.deptno as deptno1_0_0_,
dept0_.dname as dname2_0_0_,
dept0_.loc as loc3_0_0_
from
DEPT2 dept0_
where
dept0_.deptno=?
Emp [empNo=16, eName=TOM, job=CODER, mgr=7788, hireDate=2018-06-28 11:18:18.0, sal=3000.0, comm=100.0, dept=Dept [deptNo=17, dName=VR, loc=Phoenix]]
Emp [empNo=63, eName=德国队, job=MANAGER, mgr=7788, hireDate=2018-06-21 21:24:37.0, sal=3000.0, comm=100.0, dept=Dept [deptNo=64, dName=WorldCup, loc=Moscow]]
Hibernate:
select
dept0_.deptno as deptno1_0_0_,
dept0_.dname as dname2_0_0_,
dept0_.loc as loc3_0_0_
from
DEPT2 dept0_
where
dept0_.deptno=?
Emp [empNo=110, eName=Police, job=Police, mgr=110, hireDate=2001-09-09 09:46:40.0, sal=4000.0, comm=800.0, dept=Dept [deptNo=5, dName=DeptX, loc=null]]

inner Join输出结果

    //left join
@Test
public void test12(){
Session ss=HibernateUtil.getSession();
//根据员工名称(SCOTT)找到和他所在的部门的其他员工的信息
//String hql="from Emp e left outer join e.dept on e.deptNo=e.dept.deptNo";//获取Emp+Dept的集合
//String hql="select e from Emp e left outer join e.dept on e.deptNo=e.dept.deptNo";//获取Emp
//以上两个个需要deptNo属性,在配置文件中配置property和Emp类中生成相应的getter setter
String hql="from Emp e left outer join fetch e.dept ";//获取Emp
Query qr=ss.createQuery(hql); List<Emp> el =qr.list();
System.out.println(el.size());
for (Emp emp : el) {
System.out.println(emp);
}
HibernateUtil.closeResource(ss);
}

left join

left join输出24条结果,因为3条是没有deptno的
Hibernate:
select
emp0_.empno as empno1_1_0_,
dept1_.deptno as deptno1_0_1_,
emp0_.ename as ename2_1_0_,
emp0_.job as job3_1_0_,
emp0_.mgr as mgr4_1_0_,
emp0_.hiredate as hiredate5_1_0_,
emp0_.sal as sal6_1_0_,
emp0_.comm as comm7_1_0_,
emp0_.deptno as deptno8_1_0_,
dept1_.dname as dname2_0_1_,
dept1_.loc as loc3_0_1_
from
EMP2 emp0_
left outer join
DEPT2 dept1_
on emp0_.deptno=dept1_.deptno
27
Emp [empNo=7934, eName=MILLER, job=CLERK, mgr=7782, hireDate=1982-01-23 00:00:00.0, sal=1300.0, comm=null, dept=Dept [deptNo=10, dName=ACCOUNTING, loc=NEW YORK]
]
Emp [empNo=7839, eName=KING, job=PRESIDENT, mgr=null, hireDate=1981-11-17 00:00:00.0, sal=5000.0, comm=null, dept=Dept [deptNo=10, dName=ACCOUNTING, loc=NEW YOR
K]]
Emp [empNo=7782, eName=CLARK, job=MANAGER, mgr=7839, hireDate=1981-06-09 00:00:00.0, sal=2450.0, comm=null, dept=Dept [deptNo=10, dName=ACCOUNTING, loc=NEW YORK
]]
Emp [empNo=19, eName=韩国队, job=MANAGER, mgr=7788, hireDate=2018-06-12 00:00:00.0, sal=3000.0, comm=100.0, dept=Dept [deptNo=20, dName=RESEARCH, loc=DALLAS]]
Emp [empNo=7902, eName=FORD, job=ANALYST, mgr=7566, hireDate=1981-12-03 00:00:00.0, sal=3000.0, comm=null, dept=Dept [deptNo=20, dName=RESEARCH, loc=DALLAS]]
Emp [empNo=7876, eName=ADAMS, job=CLERK, mgr=7788, hireDate=1987-05-23 00:00:00.0, sal=1100.0, comm=null, dept=Dept [deptNo=20, dName=RESEARCH, loc=DALLAS]]
Emp [empNo=7788, eName=SCOTT, job=ANALYST, mgr=7566, hireDate=1987-04-19 00:00:00.0, sal=3000.0, comm=null, dept=Dept [deptNo=20, dName=RESEARCH, loc=DALLAS]]
Emp [empNo=7566, eName=JONES, job=MANAGER, mgr=7839, hireDate=1981-04-02 00:00:00.0, sal=2975.0, comm=null, dept=Dept [deptNo=20, dName=RESEARCH, loc=DALLAS]]
Emp [empNo=7369, eName=SMITH, job=CLERK, mgr=7902, hireDate=1980-12-17 00:00:00.0, sal=800.0, comm=null, dept=Dept [deptNo=20, dName=RESEARCH, loc=DALLAS]]
Emp [empNo=7900, eName=JAMES, job=CLERK, mgr=7698, hireDate=1981-12-03 00:00:00.0, sal=950.0, comm=null, dept=Dept [deptNo=30, dName=SALES, loc=CHICAGO]]
Emp [empNo=7844, eName=TURNER, job=SALESMAN, mgr=7698, hireDate=1981-09-08 00:00:00.0, sal=1500.0, comm=0.0, dept=Dept [deptNo=30, dName=SALES, loc=CHICAGO]]
Emp [empNo=7698, eName=BLAKE, job=MANAGER, mgr=7839, hireDate=1981-05-01 00:00:00.0, sal=2850.0, comm=null, dept=Dept [deptNo=30, dName=SALES, loc=CHICAGO]]
Emp [empNo=7654, eName=MARTIN, job=SALESMAN, mgr=7698, hireDate=1981-09-28 00:00:00.0, sal=1250.0, comm=1400.0, dept=Dept [deptNo=30, dName=SALES, loc=CHICAGO]]
Emp [empNo=7521, eName=WARD, job=SALESMAN, mgr=7698, hireDate=1981-02-22 00:00:00.0, sal=1250.0, comm=500.0, dept=Dept [deptNo=30, dName=SALES, loc=CHICAGO]]
Emp [empNo=7499, eName=ALLEN, job=SALESMAN, mgr=7698, hireDate=1981-02-20 00:00:00.0, sal=1600.0, comm=300.0, dept=Dept [deptNo=30, dName=SALES, loc=CHICAGO]]
Emp [empNo=110, eName=Police, job=Police, mgr=110, hireDate=2001-09-09 09:46:40.0, sal=4000.0, comm=800.0, dept=Dept [deptNo=5, dName=DeptX, loc=null]]
Emp [empNo=89, eName=Odin, job=Athlete, mgr=7788, hireDate=2018-06-28 10:21:47.0, sal=3000.0, comm=100.0, dept=Dept [deptNo=90, dName=FOOTBALL, loc=Seattle]]
Emp [empNo=88, eName=Poly, job=Athlete, mgr=7788, hireDate=2018-06-28 10:21:47.0, sal=3000.0, comm=100.0, dept=Dept [deptNo=90, dName=FOOTBALL, loc=Seattle]]
Emp [empNo=87, eName=InverseF, job=TEST, mgr=7788, hireDate=2018-06-28 10:18:08.0, sal=1000.0, comm=100.0, dept=Dept [deptNo=86, dName=HBM, loc=Diego]]
Emp [empNo=13, eName=InverseT, job=TEST, mgr=7788, hireDate=2018-06-28 11:16:49.0, sal=1000.0, comm=100.0, dept=Dept [deptNo=86, dName=HBM, loc=Diego]]
Emp [empNo=63, eName=德国队, job=MANAGER, mgr=7788, hireDate=2018-06-21 21:24:37.0, sal=3000.0, comm=100.0, dept=Dept [deptNo=64, dName=WorldCup, loc=Moscow]]
Emp [empNo=67, eName=瑞士队, job=MANAGER, mgr=2018, hireDate=2018-06-21 21:37:53.0, sal=3000.0, comm=100.0, dept=Dept [deptNo=64, dName=WorldCup, loc=Moscow]]
Emp [empNo=83, eName=SET, job=主播, mgr=7788, hireDate=2018-06-28 10:08:45.0, sal=3000.0, comm=100.0, dept=Dept [deptNo=81, dName=BigDept, loc=NEWYORK]]
Emp [empNo=16, eName=TOM, job=CODER, mgr=7788, hireDate=2018-06-28 11:18:18.0, sal=3000.0, comm=100.0, dept=Dept [deptNo=17, dName=VR, loc=Phoenix]]
Emp [empNo=18, eName=吴奇隆, job=ACTOR, mgr=7788, hireDate=2018-06-20 00:00:00.0, sal=4000.0, comm=1000.0, dept=null]
Emp [empNo=11, eName=JASON, job=CODER, mgr=7788, hireDate=2018-06-28 11:14:47.0, sal=3000.0, comm=100.0, dept=null]
Emp [empNo=5, eName=YaoMing, job=Athlete, mgr=7788, hireDate=2018-06-28 11:08:59.0, sal=3000.0, comm=100.0, dept=null]

left join 输出结果

[Hibernate] inner Join和 left Join的更多相关文章

  1. Hibernate中,left join、inner join以及left join fetch区别(转)

    标签: hibernate hql inner join left right 杂谈 分类: SQL 原文地址:http://m33707.iteye.com/blog/829725 Select F ...

  2. mysql join 和left join 对于索引的问题

    今天遇到一个left join优化的问题,搞了一下午,中间查了不少资料,对MySQL的查询计划还有查询优化有了更进一步的了解,做一个简单的记录: select c.* from hotel_info_ ...

  3. 【转】mysql的union、left join、 right join、 inner join和视图学习

    1.联合 union 进行多个查询语句时,要求多次查询的结果列数必须一样.此时,查询的结果以第一个sql语句的列名为准且union会自动去重复我们应该使用union all. 例...... 1.联合 ...

  4. SQL Left Join, Right Join, Inner Join, and Natural Join 各种Join小结

    在SQL语言中,存在着各种Join,有Left Join, Right Join, Inner Join, and Natural Join等,对于初学者来说肯定一头雾水,都是神马跟神马啊,它们之间到 ...

  5. sql语法:inner join on, left join on, right join on详细使用方法

    inner join(等值连接) 只返回两个表中联结字段相等的行 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有 ...

  6. sql之left join、right join、inner join的区别

    sql之left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括 ...

  7. SQL中inner join、outer join和cross join的区别

    对于SQL中inner join.outer join和cross join的区别简介:现有两张表,Table A 是左边的表.Table B 是右边的表.其各有四条记录,其中有两条记录name是相同 ...

  8. SQL JOIN\SQL INNER JOIN 关键字\SQL LEFT JOIN 关键字\SQL RIGHT JOIN 关键字\SQL FULL JOIN 关键字

    SQL join 用于根据两个或多个表中的列之间的关系,从这些表中查询数据. Join 和 Key 有时为了得到完整的结果,我们需要从两个或更多的表中获取结果.我们就需要执行 join. 数据库中的表 ...

  9. SQL表连接查询(inner join、full join、left join、right join)

    SQL表连接查询(inner join.full join.left join.right join) 前提条件:假设有两个表,一个是学生表,一个是学生成绩表. 表的数据有: 一.内连接-inner ...

随机推荐

  1. 20175320 2018-2019-2 《Java程序设计》第2周学习总结

    20175320 2018-2019-2 <Java程序设计>第2周学习总结 教材学习内容总结 本周学习了教材的第二章及第三章的内容.在这两章中介绍了Java编程中的基本数据类型与数组以及 ...

  2. Mac 软件

    http://xclient.info/?t=e0ec92ebc9ce8ef7b7a48460b06893fa040ff066   Mac破解版软件网址

  3. MySQL 误操作后数据恢复(update,delete忘加where条件)

    在数据库日常维护中,开发人员是最让人头痛的,很多时候都会由于SQL语句写的有问题导致服务器出问题,导致资源耗尽.最危险的操作就是在做DML操作的时候忘加where条件,导致全表更新,这是作为运维或者D ...

  4. 关于maven-resources-plugin配置的隐藏的坑

    昨天发现一个问题, 一个第三方证书的文件存放于resources文件夹下,在本地环境使用该证书进行加密调用第三方接口,没有任何问题,但是发布到测试环境和生产环境(linux)报错,提示证书工厂无法初始 ...

  5. Ajax取PHP JSON数据并显示

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  6. Number 强制类型转换 int 强制转换整型 float 强制转换浮点型 complex 强制转换成复数 bool 强制转换成布尔类型,结果只有两种,要么True 要么 False """bool 可以转换所有的数据类型 everything"""

    # ###Number 强制类型转换 var1 = 5 var2 = 4.85 var3 = True var3_2 = False var4 = 3+9j var5 = "888777&q ...

  7. [js]js原型链继承小结

    这是之前总结的, 发现有很多的毛病,就是重点不突出,重新翻看的时候还是得耗费很长时间去理解这玩意. js中的继承 js中什么是类 1,类是函数数据类型 2.每个类有一个自带prototype属性 pr ...

  8. TensorFlow(1)注解入门代码

    学习当然要从官方的入门文档开始. 但是这篇入门对于从0开始的初学者似乎有些困难,尤其是对于神经网络知识还是一知半解的. 敲完理解一遍还是懵逼. TensorFlow经典入门代码学习备注如下. impo ...

  9. 3.Python3变量与基本数据类型

    3.1保留字和标识符 3.1.1保留字 保留字是Python语言中已经被赋予特定意义的一些单词,开发程序时不可以把保留字作为变量.函数.类.模块和其他对象的名称来使用.保留字如下: 3.1.2标识符 ...

  10. Class_fifth

    1,统计文件夹的文件总数 代码: package Class_fifth; import java.io.File; public class Statistics { public static v ...