`
lbxhappy
  • 浏览: 305900 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hibernate fetch的select 和 join的区别

    博客分类:
  • j2ee
阅读更多

join 查询的时候,是用一条语句查处所有记录,包括关联表记录,select查出的是N+1条记录,两个都是差不多的,但是如果用了lazy=true,延迟加载的话,select在查询时只会查出主表记录,也就是1,如果其他地方也用到了数据,此时就会自动在执行查询,查出N,可以降低内存消耗 .还有,hibernate是的session是轻量级的,创建和销毁都不花很多资源,查询数据也很快,这里fetch主要起这个作用,所以我们一般的情况下要用select查询

 

分享到:
评论

相关推荐

    HIBERNATE检索策略

    描述:本文深入解析了HIBERNATE的检索策略,为读者提供了一条清晰的学习路径,重点分析了HIBERNATE中的抓取策略及其应用场景,帮助开发者更有效地管理和优化数据加载过程。 在HIBERNATE框架中,检索策略主要涉及...

    Hibernate HQL.doc

    这意味着"SeLeCT"、"sELEct"和"SELECT"都是等价的。然而,类名和属性名的大小写是敏感的,例如"org.hibernate.eg.FOO"并不等于"org.hibernate.eg.Foo",同样"foo.barSet"也不等于"foo.BARSET"。在本手册中,HQL的...

    HQL Hibernate查询语言

    因此,SeLeCT 和 sELEct 以及 SELECT 是相同的,但是 org.hibernate.eg.FOO 不等价于 org.hibernate.eg.Foo,同样,foo.barSet也不等价于 foo.BARSET。本手册中的 HQL 关键字将使用小写字母。 2. from 子句 HQL 中...

    Hibernate笔记

    6. **Fetch Types**: 在Hibernate中,提供了多种方式来获取关联对象:`EAGER`(急切加载)和`LAZY`(惰性加载)。 #### 三、获取数据方法 - **load()**: 用于加载指定主键对应的实体对象。如果对象不在缓存中,则...

    hibernate面试题2

    - **迫切左外连接检索(Fetch Join)**:兼顾透明性和效率,但可能加载不必要的对象,且复杂的表连接可能影响性能。 2. **查看Hibernate生成的SQL**:在`applicationConfig.xml`中设置`hibernate.show_sql`为`true...

    hibernate的hql语句

    需要注意的是,`fetch`连接不适用于滚动查询或迭代查询,且`full join fetch`和`right join fetch`通常没有实际意义。 4. **关联的处理**:HQL支持处理一对一、一对多、多对一和多对多的关联。例如,`from Cat as ...

    Hibernate_HQL大全

    在这个查询中,我们不仅检索了Cat实体,还通过LEFT JOIN FETCH子句同时加载了它们的mate和kittens。这种方式确保了即使mate或kittens为空,查询也能正确执行,同时避免了多次数据库访问,提高了查询效率。 #### 四...

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

    这意味着 SELECT、SeLeCT 和 sELEct 都是相同的,但是 org.hibernate.eg.FOO 并不等价于 org.hibernate.eg.Foo, foo.barSet 也不等价于 foo.BARSET。 from 子句 在 HQL 中,from 子句是查询语句的开始部分,例如...

    hibernate hql基本操作

    例如,`SeLeCT`、`sELEct`和`SELECT`被视为相同,但`org.hibernate.eg.FOO`不等于`org.hibernate.eg.Foo`,同理`foo.barSet`不等于`foo.BARSET`。 - **关键字书写**:在本手册中,HQL关键字使用小写字母。有些用户...

    Hibernate提升性能Hibernate提升性能

    首先,连接抓取(Join fetching)是一种通过在SELECT语句中使用OUTER JOIN来获取关联对象的策略,它能在一次查询中同时获取主对象和关联对象,减少数据库的交互次数。然而,过度使用连接抓取可能导致大结果集,增加...

    hibernate笔记

    - 支持 select、from、where、join、group by、order by 等子句,还可以进行聚合操作和子查询。 6. **Criteria 查询** - Criteria API 提供了一种动态构建查询的方式,无需编写字符串 HQL。 - 可以添加限制条件...

    HIBERNATE HQL

    例如,`SeLeCT`、`sELEct` 和 `SELECT` 是等价的,但 `org.hibernate.eg.FOO` 并不等于 `org.hibernate.eg.Foo`,并且 `foo.barSet` 也不同于 `foo.BARSET`。 2. **FROM 子句** - 最简单的HQL查询形式是 `from ...

    Hibernate延迟加载以及利用Spring

    1. **修改Fetch策略**:将Fetch策略设置为`fetch="join"`,即在查询主对象的同时通过JOIN查询的方式加载关联对象,这样就不会抛出延迟加载异常。 2. **禁用延迟加载**:将`lazy="false"`,这样就会在查询主对象时...

    Hibernate问题解决

    - **解决方法:** 在Hibernate中,可以通过HQL或者Criteria API来实现`LEFT JOIN`和`RIGHT JOIN`。 - **LEFT JOIN:** ```java String hql = "FROM UserInfo u LEFT JOIN FETCH u.role r WHERE r.description ...

    hibernate关联查询

    在处理一对多关联查询时,我们可能会遇到内连接(JOIN)和左连接(LEFT JOIN)。`JOIN`会返回两个表中存在匹配的所有记录,而`LEFT JOIN`会返回所有左侧表的记录,即使右侧表没有匹配的记录。 在HQL中,我们可以...

    hibernate面试题.doc

    - 在查询中使用JOIN操作,例如`from Customer as customer join fetch customer.buySet`实现Eager Loading,一次性加载关联数据;`from Customer as customer join customer.buySet`则表示Lazy Loading,仅在访问...

    如何提高hibernate性能

    当业务层需要为Web层提供完整的数据集合时,确保在Session关闭前调用`Hibernate.initialize()`来初始化集合,或者在查询中使用`FETCH`从句或`FetchMode.JOIN`以预加载所需的数据。这避免了因延迟加载导致的多次...

    Hibernate查询语言(HQL)

    - **FETCH 子句**:FETCH 子句可以显式地告诉 Hibernate 加载关联的数据。 ```sql FROM com.example.Cat AS cat INNER JOIN FETCH cat.mate; ``` 使用 FETCH 可以提高查询效率,避免多次查询数据库加载关联...

    Hibernate+中文文档

    3.4. Hibernate JDBC和连接(connection)属性 3.5. Hibernate缓存属性 3.6. Hibernate事务属性 3.7. 其他属性 3.8. Hibernate SQL方言 (hibernate.dialect) 3.9. Hibernate日志类别 3.10. JTA ...

    hibernate延迟加载技术详细解

    - 如果没有显式设置 lazy="false",则默认情况下 Hibernate 使用 Select Fetching,这意味着对于每个主对象,Hibernate 都会发送一个 SQL 查询来加载关联对象。 - 这种方式适用于关联数据量不大,且每次查询都需要...

Global site tag (gtag.js) - Google Analytics