Hibernate中outer-join与lazy关键字的使用

原创 2008年09月28日 08:42:00

1、outer-join关键字(many-to-one的情况)

outer-join关键字有3个值,分别是true,false,auto,默认是auto。
true: 表示使用外连接抓取关联的内容,这里的意思是当使用load(OrderLineItem.class,“id“)时,Hibernate只生成一条SQL语句将OrderLineItem与他的父亲Order全部初始化。

select * from OrderLineItem o left join Order p on o.OrderId=p.OrderId  where o.OrderLineItem_Id=?

false:表示不使用外连接抓取关联的内容,当load(OrderLineItem.class,“id“)时,Hibernate生成两条SQL语句,一条查询OrderLineItem表,另一条查询Order表。这样的好处是可以设置延迟加载,此处要将Order类设置为lazy=true。

select * from OrderLineItem o where o.OrderLineItem_Id=?
select * from Order p where p.OrderId=?

auto:具体是ture还是false看hibernate.cfg.xml中的配置

注意:如果使用HQL查询OrderLineItem,如 from OrderLineItem o where o.id='id',总是不使用外部抓取,及outer-join失效。

2、outer-join(集合)

由于集合可以设置lazy=“true“,所以lazy与outer-join不能同时为true,当lazy=“true“时,outer-join将一直是false,如果lazy=“false“,则outer-join用法与1同

3、HQL语句会将POJO配置文件中的关联一并查询,即使在HQL语句中没有明确join。

版权声明:本文为博主原创文章,未经博主允许不得转载。

HQL的多表查询 left jon 等 (需要配置一对多)

6.4 HQL的多表查询2008-01-26 21:57 对象之间总是有各种各样的关系,关联关系是类之间最常见的关系。多表查询是HQL中的强大功能之一,包括内连接、左连接和右连接等。多表查询的设置及...
  • z69183787
  • z69183787
  • 2014年01月15日 19:09
  • 16006

Hibernate中用left join(左外连接)查询映射中没有关联关系的两个表记录问题

一、问题背景分账表split_summary结构如下:create table SPLIT_SUMMARY ( uuid VARCHAR2(32) not null,...
  • honghailiang888
  • honghailiang888
  • 2017年07月10日 17:01
  • 2959

深入理解Hibernate表与表之间的关联,搞懂cascade、inverse、lazy等属性,和注解版Hibernate实例

1.搞定Hibernate表与表之间的关联,搞懂cascade、inverse、lazy等属性
  • he90227
  • he90227
  • 2014年07月28日 13:34
  • 6086

Hibernate中的fetch, lazy, outer-join,inverse和cascade作用

1.fetch,outer-join 和 lazy 主要用于级联查询(select) 而 inverse和cascade主要用于级联增加,删除,修改(sava-update,delete)。    ...
  • wenzhihui_2010
  • wenzhihui_2010
  • 2013年05月28日 15:55
  • 545

Hibernate中hbm.xml文件的inverse、cascade、fetch、outer-join、lazy

inverse : 用于控制表与表之间的关系,默认值为“false”,一般在多对多或一对多双向关联中常见,例如在student和courser表中,产生一个sc表,如果我们对hbm文件中inverse...
  • u013516966
  • u013516966
  • 2014年09月12日 21:56
  • 1358

hibernate many-to-one 一些属性说明(outer-join)

many-to-one:描述多对一的一种数据模型,它指定many一方是不能独立存在的,我个人认为many-to-one是NHB中保证数据有效性的最有用的一种映射,通过使用many-to-one能有效的...
  • u010745407
  • u010745407
  • 2015年02月03日 13:20
  • 314

【scala】Scala中lazy关键字的使用和理解

Scala中使用关键字lazy来定义惰性变量,实现延迟加载(懒加载)。 惰性变量只能是不可变变量,并且只有在调用惰性变量时,才会去实例化这个变量。 在Java中,要实现延迟加载(懒加载),需要自己手...
  • ranran0224
  • ranran0224
  • 2017年06月23日 16:11
  • 110

for与function进阶实战、lazy关键字的使用

场景 常用元组操作 实验 package com.scode.scala import scala.io.Source /** * author: Ivy Peng * function:...
  • PENGYUCHENG32109
  • PENGYUCHENG32109
  • 2016年02月21日 23:06
  • 331

Scala中lazy关键字的使用和理解

Scala中使用关键字lazy来定义惰性变量,实现延迟加载(懒加载)。 惰性变量只能是不可变变量,并且只有在调用惰性变量时,才会去实例化这个变量。在Java中,要实现延迟加载(懒加载),需要自己手动...
  • bing2011
  • bing2011
  • 2016年08月03日 15:40
  • 5027

hibernate join fetch lazy 你懂了么,反正我已经凌乱了,今天整理一下,转载一下人家的文章吧

fetch ,可以设置fetch = "select" 和 fetch = "join" 用一对多来举例: fetch = "select"是在查询的时候先查询出一端的实体,然后在根据一端的查...
  • kenshinlou
  • kenshinlou
  • 2013年04月18日 16:07
  • 636
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate中outer-join与lazy关键字的使用
举报原因:
原因补充:

(最多只允许输入30个字)