`
yjp
  • 浏览: 22060 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Hibernate Set查询过虑

阅读更多
今天在做一个项目需要做到Set集的数据过虑,因为在获取一个User的时候不能将属于这个User的Knowledge全部取出,再一个一个地筛选符合条件的Knowledge,这样做会在很大的程度降底系统性能。

在Hibernate中类型为Set、List的实体属性也是可以连接查询的,例如User里面有一个Set<Knowledge> knowledge属性要获取User中Knowledge的isShared的属性为true的User并且在返回的User中的knowledges中包含isShared为true的Knowledge对象的时候,就要通Set的过虑查询(左连接查询),在hibernate3.2.3以后的写法如下:
select distinct u from User u left join fetch u.knowledges k where k.isShare=true。
这样就只会获取knowledge的isShared为true的User,并且User里面的knowleges中包含knowledge的isShared为true的Knowlege对象。
需要注意的是:关键字distinct和fetch。要实现上面的数据过虑就得要这两个关键字。第一个关键字是独立的意思,第二个关键字是以一条sql语句执行。如果少了fetch这个关键字,则达不到目的。返回的结果是一个User包含isShared为true和false的knowledge集合。

同理,如果Knowledge里面还要Set、List属性,并且也要据根这些属性中的对象的某些属性约束查询的话(二级或三级连接查询),也是一样可以做到的。
分享到:
评论

相关推荐

    hibernate set 集合映射

    4. **性能优化**:通过调整查询策略(如分页、排序、过滤)和使用二级缓存,可以优化集合映射的性能。 总结来说,`hibernate set 集合映射`是Java开发中处理对象关系的重要手段,它提供了丰富的功能来映射和管理...

    hibernate 中HQL语句查询学习笔记

    ### Hibernate中HQL语句查询学习笔记 #### HQL基础 **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及...

    Hibernate权限管理例子

    这通常在Controller层或者过滤器中进行,通过查询数据库来检查当前用户是否有执行特定操作的权限。 总结起来,这个“Hibernate权限管理例子”展示了如何使用Hibernate注解来构建一个基本的权限管理系统,包括用户、...

    Hibernate+中文文档

    17.1. Hibernate 过滤器(filters) 18. XML映射 18.1. 用XML数据进行工作 18.1.1. 指定同时映射XML和类 18.1.2. 只定义XML映射 18.2. XML映射元数据 18.3. 操作XML数据 19. 提升性能 19.1. 抓取策略(Fetching ...

    hibernate查询

    ### Hibernate 查询详解 #### 一、概述 在Java开发领域,Hibernate作为一种流行的持久层框架,提供了多种查询方式来实现对数据库的操作。本文将详细介绍Hibernate的几种主要查询方式,包括对象的状态变化、数据...

    hibernate v3.04中文参考手册

    - Criteria与DetachedCriteria,实现检索、过滤、排序等操作。 7. **Cascading与Lazy Loading** - Cascading:级联操作,如级联保存、更新、删除等。 - Lazy Loading:延迟加载,只在真正需要时加载关联对象,...

    多对多关系中Set的查询

    在本案例中,我们探讨了如何在多对多关系中使用Set进行查询,特别是针对Hibernate框架。 首先,我们定义了两个类,Teacher和Student,它们分别代表教师和学生。每个教师都有一个由学生组成的Set,同样,每个学生也...

    hibernate_中文乱码

    根据提供的文件信息,我们可以推断出这段代码是关于一个用于设置请求字符编码的过滤器(Filter),主要目的是解决在Hibernate框架使用过程中遇到的中文乱码问题。下面将详细阐述与标题、描述及部分代码相关的关键...

    hibernate3.2中文文档(chm格式)

    17.1. Hibernate 过滤器(filters) 18. XML映射 18.1. 用XML数据进行工作 18.1.1. 指定同时映射XML和类 18.1.2. 只定义XML映射 18.2. XML映射元数据 18.3. 操作XML数据 19. 提升性能 19.1. 抓取策略(Fetching ...

    HibernateAPI中文版.chm

    17.1. Hibernate 过滤器(filters) 18. XML映射 18.1. 用XML数据进行工作 18.1.1. 指定同时映射XML和类 18.1.2. 只定义XML映射 18.2. XML映射元数据 18.3. 操作XML数据 19. 提升性能 19.1. 抓取策略(Fetching ...

    Hibernate实战(第2版 中文高清版)

    第一部分 从Hibernate和EJB 3.0开始  第1章 理解对象/关系持久化   1.1 什么是持久化   1.1.1 关系数据库   1.1.2 理解SQL   1.1.3 在Java中使用SQL   1.1.4 面向对象应用程序中的持久化   1.2 范式不...

    hibernate转换编码配置和权限及java代码

    本文将探讨如何在Hibernate应用中进行编码转换配置、处理权限以及使用过滤器来控制缓存。 首先,编码转换是Web应用程序中一个重要的环节,特别是在处理中文字符时。在提供的代码片段中,我们看到一个名为`...

    hibernate学习文档

    - **Criteria API**:提供了一种更灵活的构建查询条件的方法,可以动态地添加过滤条件。 ##### 3.3 事务管理 Hibernate 支持两种事务管理方式: - **本地事务**:由 Hibernate 自身管理事务的生命周期。 - **JTA...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     18.4.2 集合过滤  18.4.3 子查询  18.4.4 本地SQL查询  18.4.5 查询结果转换器  18.5 查询性能优化  18.5.1 iterate()方法  18.5.2 查询缓存  18.6 小结  18.7 思考题 第19章 Hibernate高级配置  19.1 ...

    hibernate 教程

    Hibernate查询语言(Query Language), 即HQL 11.1. 大小写敏感性(Case Sensitivity) 11.2. from 子句 11.3. 联合(Associations)和连接(joins) 11.4. select子句 11.5. 统计函数(Aggregate ...

    Hibernate中文详细学习文档

    17.1. Hibernate 过滤器(filters) 18. XML映射 18.1. 用XML数据进行工作 18.1.1. 指定同时映射XML和类 18.1.2. 只定义XML映射 18.2. XML映射元数据 18.3. 操作XML数据 19. 提升性能 19.1. 抓取策略(Fetching ...

    Hibernate 中文 html 帮助文档

    17.1. Hibernate 过滤器(filters) 18. XML映射 18.1. 用XML数据进行工作 18.1.1. 指定同时映射XML和类 18.1.2. 只定义XML映射 18.2. XML映射元数据 18.3. 操作XML数据 19. 提升性能 19.1. 抓取策略(Fetching ...

    JSP 开发之hibernate的hql查询多对多查询

    此外,你还可以通过添加更多的条件,如试题的状态、创建日期等,来进一步过滤查询结果。 总之,理解和掌握Hibernate的HQL查询多对多关系是JSP开发中的重要技能,它可以帮助你高效地处理复杂的数据查询,提高代码的...

    MySQL中set类型的使用

    查询数据时,可以使用标准的SQL语句来过滤或者比较`SET`类型的列: ```sql SELECT * FROM schedule WHERE days LIKE '%Monday%'; ``` 这将返回所有包含"Monday"的记录。 在Java的Hibernate框架中,如果你需要映射一...

    Hibernate 程序设计.ppt

    Hibernate提供了强大的查询语言HQL(Hibernate Query Language),类似于SQL但面向对象,以及 Criteria API 和 Query API,使得开发者能灵活地查询和过滤数据。 综上所述,Hibernate通过ORM机制,简化了Java应用与...

Global site tag (gtag.js) - Google Analytics