`
m33707
  • 浏览: 10945 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
文章分类
社区版块
存档分类
最新评论

Hibernate中,left join、inner join以及left join fetch区别

阅读更多
Select <要查询的字段> From <Left 资料表>

  <Left | Right> [Outer] Join <Right 资料表> On <Join 规则>


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了
分享到:
评论

相关推荐

    HQL Hibernate查询语言

    HQL Hibernate 查询语言 HQL(Hibernate Query Language)是 Hibernate 中的一种强大的查询语言,它看起来很像 SQL,但是不要被...例如:from Cat as cat inner join fetch cat.mate left join fetch cat.kittens。

    Hibernate HQL.doc

    HQL支持四种类型的连接:inner join(内连接)、left outer join(左外连接)、right outer join(右外连接)和full join(全连接)。简写形式如`join`和`left join`也是允许的。`fetch`连接用于一次性初始化相关联...

    Hibernate_HQL大全

    4. **JOIN与ASSOCIATION**:HQL支持INNER JOIN、LEFT OUTER JOIN、RIGHT OUTER JOIN和FULL JOIN四种连接类型。通过JOIN关键字,HQL能够处理实体间的关联,从而实现对关联实体的查询。例如,“JOIN cat.mate as mate...

    hibernate的使用心得

    Hibernate支持多种连接类型,包括`inner join`(内连接)、`left outer join`(左外连接)、`right outer join`(右外连接)和`full join`(全连接)。`with`关键字用于提供额外的连接条件,类似于SQL中的`on`关键字...

    HIBERNATE HQL

    例如,`from Cat as cat inner join fetch cat.mate left join fetch cat.kittens`。 - 使用 `fetch all properties` 可以强制Hibernate立即加载那些默认情况下需要延迟加载的属性,从而提高第一次查询时的数据完整...

    hibernate的hql语句

    连接类型包括:`inner join`(内连接)、`left outer join`(左外连接)、`right outer join`(右外连接)和`full join`(全连接)。`join`的简写形式如`from Cat as cat join cat.kittens as kitten`,简化了查询...

    Hibernate查询语言(HQL)

    - **LEFT OUTER JOIN**:左外连接,返回左侧实体的所有记录,以及右侧实体匹配的记录。 ```sql FROM com.example.Cat AS cat LEFT OUTER JOIN cat.kittens AS kitten; ``` - **FULL JOIN**:全连接,返回两个...

    hibernate 的HQL 语言入门与提高

    HQL 提供了丰富的功能,包括对继承、多态的支持,以及复杂的查询构造,使得在 Hibernate 中处理对象模型变得更为便捷。通过熟练掌握 HQL,开发者可以更有效地进行数据查询,提高代码的可读性和维护性。在实际应用中...

    hql语句经典教程

    from Cat as cat inner join fetch cat.mate left join fetch cat.kittens ``` 这将在查询时初始化关联的伴侣猫和幼猫集合。请注意,`fetch`连接通常不用于`where`子句,也不直接返回结果集,而是通过父对象访问。...

    Hibernate查询语言

    HQL支持多种类型的连接,如内连接(inner join)、左外连接(left outer join)、右外连接(right outer join)和全连接(full join)。例如: ```sql from Cat as cat inner join cat.mate as mate left outer join...

    hibernate 中HQL语句查询学习笔记

    SELECT s, c FROM Student s LEFT OUTER JOIN FETCH s.courses c; ``` 这里使用了`FETCH`关键字来立即加载关联数据。 ##### 右外连接 与左外连接相反,右外连接会返回右表的所有记录,并尽可能地与左表的记录匹配...

    hibernate hql基本操作

    在实际应用中,合理运用FROM子句、关联与连接、Fetch连接以及Fetch策略等技巧,可以实现高效的数据检索和处理。 以上是对给定文件中的“hibernate HQL基本操作”的详细解析,希望能够帮助读者更好地理解和掌握HQL的...

    HQL语言教程[归类].pdf

    例如,`from Cat as cat inner join fetch cat.mate left join fetch cat.kittens`。需要注意的是,`fetch`连接不适用于`iterate()`查询,且不应与`setMaxResults()`或`setFirstResult()`一起使用。 总的来说,HQL...

    HQL语句大全

    - 示例:`from Cat as cat join fetch cat.mate left join fetch cat.kittens`。 - **限制**:`fetch`连接不能在使用`scroll()`或`iterate()`方法的查询中使用;也不能使用`full join fetch`或`right join fetch`。...

    hibernate 框架的基础四

    Query query = session.createQuery("FROM Order o LEFT JOIN FETCH o.customer c WHERE o.id = :orderId"); query.setParameter("orderId", orderId); List&lt;Order&gt; orders = query.list(); ``` #### 二、事务...

    Hibernate查询语言(HQL) 语法参考

    from Cat as cat inner join fetch cat.mate ``` 这将返回 Cat 类的实例和它的 mate 关联对象,并将相关联的对象初始化。 select 子句 select 子句选择将哪些对象与属性返回到查询结果集中,例如: ``` select cat...

    HQL详解

    其中,`INNER JOIN`、`LEFT OUTER JOIN`和`RIGHT OUTER JOIN`可以简化为: ``` FROM Cat AS cat JOIN cat.mate AS mate LEFT JOIN cat.kittens AS kitten ``` 此外,`FETCH`连接允许在一个选择语句中同时初始化父...

    hsql查询语法

    from Cat as cat inner join fetch cat.mate left join fetch cat.kittens 这个语句将Cat类的实例与其mate和kittens之间的关系进行关联和连接,并将相关联的对象随着父对象的初始化而被初始化。 需要注意的是,...

    hql语句大全hql语句大全

    HQL作为一种高度集成的查询语言,不仅简化了数据访问的复杂度,而且通过其丰富的功能,如JOIN和FETCH子句,以及对特定属性的选择,为开发人员提供了灵活的数据检索手段。掌握HQL,意味着能够在Hibernate框架中实现...

    HQL连接查询和注解使用总结

    - **等值连接**:类似于传统SQL中的`INNER JOIN`,用于两个类之间没有建立任何关联关系的情况,通过属性进行筛选。 - 示例:`FROM Department d, Employee e WHERE d.id = e.departmentId` - **隐式内连接与迫切内...

Global site tag (gtag.js) - Google Analytics