关于内连接、左外连接和迫切左外连接
来源:互联网 发布:万界淘宝商txt百度云 编辑:程序博客网 时间:2024/06/05 00:32
举例说明:
需求:把用户和订单查询出来
情况一:内连接查询。即只查询有订单的用户。
from User u inner join u.orders o;
from User u left outer join fetch u.orders o;
注:左外连接语句中的fetch,表示迫切。即迫切左外连接。
什么叫迫切左外连接?
个人理解:
若将(迫切)左外连接左边的对象称为“主对象“,右边的对象称为”附属对象“。则使用左外连接时,查询出来的对象结构是主对象和附属对象组成的组成的一个对象数组,形如:Object[主对象,附属对象]。而使用迫切左外连接时,查询出来的对象结构是一个主对象,而附属对象作为住对象的一个属性值嵌在其中,形如:主对象
其他属性……...对应属性名:附属对象...其他属性……
相较之下,一般都是使用迫切左外连接
举例说明:
以左外连接的方式(第9行):
@Testpublic void showUser(){ ApplicationContext context = new ClassPathXmlApplicationContext("spring/applicationcontext.xml"); SessionFactory sessionFactory = (SessionFactory) context.getBean("sessionFactory"); Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); List list = (List) session.createQuery("from User u left outer join u.department d").list(); tx.commit(); session.close();}
在第11行打上断点,在方法名上右键→debug as→Junit Test,运行一会儿……,在9行的list上右键→watch
可看到效果如下图:
重点在这:(即User和Department组成了一个数组)
以迫切左外连接的方式:
将上述代码第9行改成如下形式:
List list = (List) session.createQuery("from User u left outer join fetch u.department d").list();可看到效果如下:
重点在这:(即Department作为User的属性存在)
阅读全文
0 0
- Hibernate迫切左外连接和迫切内连接
- 关于内连接、左外连接和迫切左外连接
- 内连接,外连接,交叉连接,迫切左外连接和迫切内连接
- 内连接,迫切内连接,左外连接,迫切左外连接
- 迫切左外连接、 左外连接、 迫切内连接、 内连接
- 内连接,迫切内连接,左外连接,迫切左外连接
- hibernate中关于迫切左外连接 左连接
- Hibernate中的迫切左外连接和左外连接
- HQL (迫切)左外连接
- hibernate_day04_14_HQL多表查询(左外连接和迫切左外连接)
- 内连接 外连接 左连接
- 内连接,外连接,左连接,右连接,全连接
- 左连接、右连接、内连接、外连接、union连接
- 左连接、右连接、内连接、外连接、交叉连接
- 左连接、右连接和内连接
- 左连接、右连接和内连接
- 内连接,外连接,左连接,右连接,全连接,内连接,交叉连接,自连接
- 内连接,外连接,左连接,右连接,全连接,内连接,交叉连接,自连接
- inno setup禁止中文安装路径
- HDU 4435(charge-station)(BFS+最小花费)
- 设计模式-创建型-生成器
- Tomcat源码分析--生命周期管理
- 蓝桥杯-高精度加法
- 关于内连接、左外连接和迫切左外连接
- CSS(四) 设置文本样式
- Write Latex functions in html by applying MathJax
- Spring MVC的配置访问静态资源的三种方案
- 设计模式-创建型-工厂方法
- 134. Gas Station
- 1. Linux 终端命令快速复习
- eclipse安装Activiti Designer插件
- form表单传给BaseServlet