`
xxy_aldrich
  • 浏览: 8400 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

hibnerate criteria set 查询N+1问题

 
阅读更多

类中存在Set集合的变量,在*.hbm.xml中一般配置为一对多的关联,并且lazy配置为true,

但是在Criteria createAlias("variableName", "variableAlias", Criteria.INNER_JOIN);

INNER_JOIN并不会起作用,需要用Hibernate.initialize进行初始化,导致N+1问题。

但是把INNER_JOIN变成LEFT_JOIN的话

Criteria createAlias("variableName", "variableAlias", Criteria.LEFT_JOIN); 是可以把Set关联的查询上来。这是Hibernate 的一个bug.

另外用HQL inner join不存在这个问题。
     

[参考]https://forum.hibernate.org/viewtopic.php?p=2418532

分享到:
评论

相关推荐

    hibernate N+1问题解决办法

    在Java开发中,使用Hibernate作为ORM框架时,我们可能会遇到一个性能上的问题,那就是著名的“N+1查询问题”。此问题源于不恰当的数据加载策略,可能导致数据库查询效率低下,尤其在大数据量的情况下,会严重影响...

    hibernate的n+1问题.docx

    然而,使用不当可能会导致性能瓶颈,其中最典型的就是“N+1次SELECT查询问题”。本文将深入探讨这个问题,以及如何通过优化检索策略来解决它。 N+1次SELECT查询问题源于Hibernate的默认行为。当从数据库中加载一个...

    How to solve the hibernate N+1 problem?

    N+1问题是指在进行一对多或多对多关联查询时,原本期望通过一次SQL查询获取所有数据,但实际执行了N+1次查询,其中N为一端实体的数量,这极大地影响了应用性能。 描述中提到的链接指向了一篇博客文章,虽然具体内容...

    Criteria连表查询

    Hibernate中的Criteria连表查询,包括单表属性查询,多表内连,以及左外连接查询

    Hibernat 使用Criteria查询多对多关系(SET集合)条件

    2. **性能考虑:** 在使用多对多关系查询时,需要注意避免N+1查询问题,即每次访问集合时都会触发一次数据库查询。可以通过`fetchMode`属性设置为`FetchMode.JOIN`或使用`createAlias`方法来预先加载集合,以提高...

    Hibernate-Criteria 模糊查询

    ### Hibernate-Criteria 模糊查询详解 在Java的持久化技术中,Hibernate作为ORM(对象关系映射)框架的一种,提供了强大的数据访问能力。而其中的`Criteria`接口更是为复杂的查询需求提供了一种灵活且功能强大的...

    Hibernate-Criteria_模糊查询

    在深入探讨Hibernate与Criteria结合进行模糊查询之前,我们先来了解一下Hibernate和Criteria的基本概念,以及为何选择使用它们进行模糊查询。 ### Hibernate简介 Hibernate是一个开放源代码的对象关系映射(ORM)...

    Hibernate教程24_Hibernate的1+N问题

    本教程聚焦于一个常见问题——"1+N"查询问题,这是Hibernate在处理关联关系时可能出现的性能瓶颈。 在关系型数据库中,我们经常遇到一对多(1:N)的关系,比如一个用户可以有多个订单,一个部门可以有多个员工。在...

    Criteria标准化对象查询小例子

    1. **CriteriaQuery**: 这是查询的主对象,用于定义查询的类型(例如,选择、更新或删除)以及要查询的数据实体。 2. **Root**: 它代表查询的起点,通常是对数据库表的引用。在Criteria查询中,我们创建一个Root...

    hibernateCriteria查询

    ### Hibernate Criteria 查询详解 #### 一、概述 Hibernate Criteria 查询是一种强大的对象化查询方式,它为开发者提供了一种灵活而直观的方式来构建复杂的查询逻辑。与传统的SQL查询相比,Criteria查询更加面向...

    Hibernate_Criteria条件查询数据

    1. **Criteria接口**:Criteria查询的核心是`Session.createCriteria()`方法,它返回一个Criteria实例。这个实例就是构建查询的起点,你可以添加各种限制条件、排序规则以及分组条件等。 2. **添加限制条件**:...

    hibernate如何使用criteria联合查询 group by 的语句

    这个案例是根据分组查询,并且得到每组的条数,不懂得可以q我:1710086675,欢迎认识更多新朋友

    Hibernate中,利用Criteria查询容器实现sql的写法

    在Java的持久化框架Hibernate中,Criteria API是一种用于构建动态查询的强大工具,它允许开发者以对象化的方式构建SQL语句,而无需直接编写SQL代码。本篇将详细讲解如何在Hibernate中利用Criteria查询来实现类似SQL...

    09 Criteria查询方式

    1. **类型安全**:Criteria API在编译时就能检查查询语法错误,减少了运行时异常的可能性。 2. **动态构建查询**:由于其API是基于方法的,可以方便地根据条件动态构建查询,非常适合在条件不固定或者复杂的查询场景...

    SSH+模糊查询+分页+增删改查

    - **Read**(读取):模糊查询是读取的一部分,其他常规查询可以通过HQL或Criteria API完成。 - **Update**(更新):当用户修改数据并提交时,更新操作与创建类似,只是调用了不同的DAO方法。 - **Delete**(删除...

    Criteria查询

    Criteria查询教程ppt课件内容详解

    Hibernate的Criteria文档

    `Criteria`接口提供了添加查询条件(`add(Criterion)`)、设置排序(`setOrder(Order)`)以及设置查询范围(`setFirstResult(int)`和`setMaxResults(int)`)等方法。 DetachedCriteria是Criteria的一个扩展,它允许...

Global site tag (gtag.js) - Google Analytics