hibernate outer-join 作用及用法 - 点滴记忆*记忆点滴
收藏本站

hibernate outer-join 作用及用法

1、outer-join关键字 (many-to-one的情况)
outer-join 关键字有3个值,分别是true,false,auto,默认是 auto。true: 表示使用外连接抓取关联的内容,这里的意 思是当使用load(OrderLineItem.class, “
id“
)时,Hibernate只生 成一条SQL语句将OrderLineItem与他的父亲Ord er全部初始化。select * from OrderLin eItem o left join Order p on o .OrderId=p.OrderId where o.Or derLineItem_Id=?false:表示不使用外连接 抓取关联的内容,当load(OrderLineItem.cl ass,“
id“
)时,Hiberna te生成两条SQL语句,一条查询OrderLineItem表 ,另一条查询Order表。这样的好处是可以设置延迟加载,此处 要将Order类设置为lazy=true。select * from OrderLineItem o where o.O rderLineItem_Id=?select * from Order p where p.OrderId=?auto :具体是ture还是false看hibernate.cfg. xml中的配置
注意:如果使用HQL查询OrderLi neItem,如 from OrderLineItem o where o.id='id',总是不使用外部抓取,及out er-join失效。
2、outer-join(集合) 由于集合可以设置lazy=“
true“ ;
,所以lazy与outer-join不能同时为true,当 lazy=“
true“
时,outer -join将一直是false,如果lazy=“
f alse“
,则outer-join用法与1同3、 HQL语句会将POJO配置文件中的关联一并查询,即使在HQL 语句中没有明确join。

    留下足迹