Hibernate中,left joininner join以及left join fetch区别(转)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate中,left joininner join以及left join fetch区别(转)相关的知识,希望对你有一定的参考价值。
标签: hibernate hql inner join left right 杂谈 分类: SQL
原文地址:http://m33707.iteye.com/blog/829725
Select <要查询的字段> From
[Outer] Join On
LEFT JOIN返回”left_table”中所有的行尽管在” right_table”中没有相匹配的数据。
RIGHT JOIN返回”right_table”中所有的行尽管在”left_table”中没有相匹配的数据。
INNER JOIN返回的结果集是两个表中所有相匹配的数据。
Fetch:
在我们查询Parent对象的时候,默认只有Parent的内容,并不包含childs的信息,如果在Parent.hbm.xml里设置lazy="false"的话才同时取出关联的所有childs内容.
问题是我既想要hibernate默认的性能又想要临时的灵活性该怎么办? 这就是fetch的功能。我们可以把fetch与lazy="true"的关系类比为事务当中的编程式事务与声明式事务,不太准确,但是大概是这个意思。
Query q = session.createQuery("from Parent as parent "+" left outer join fetch parent.childs " +" where parent.id = :id");
总之,fetch就是在代码这一层给你一个主动抓取得机会.
可以在lazy="true"的情况下把fetch去掉,就会报异常. 当然,如果lazy="false"就不需要fetch了要查询的字段>以上是关于Hibernate中,left joininner join以及left join fetch区别(转)的主要内容,如果未能解决你的问题,请参考以下文章
sql语句中left joinright joininner join的区别
SQL 中left joinright joininner join的区别
left joinright joininner join的区别
简单 left joininner joingroup byhaving in
sql之left joinright joininner join的区别
left joinright joininner join的区别