`
yezi
  • 浏览: 279411 次
  • 来自: 北京
社区版块
存档分类
最新评论

用DetachedCriteria避免一对多时的重复数据

 
阅读更多
1. DetachedCriteria criteria = DetachedCriteria.forClass() // 父对象
2. 将所有查询条件写进去
3. DetachedCriteria rootCriteria = DetachedCriteria.forClass() // 父对象
4. criteria.setProjection(Projections.distinct(Projections.projectionList().add(Projections.alias(Projections.property("id"), "id")))); // id 是distinct对象

5. rootCriteria.add(Subqueries.propertyIn("id", criteria));
分享到:
评论

相关推荐

    Hibernate 使用DetachedCriteria操作

    - 在服务层进行分页查询时,可以先创建DetachedCriteria,然后在视图层根据请求参数调整限制条件,避免重复计算。 **4. DetachedCriteria 的基本用法** 创建DetachedCriteria通常从`DetachedCriteria.forClass()`...

    Hibernate(24): 为什么用DetachedCriteria不能表连接地取数据?

    在提供的代码文件中,我们看到了`Husband.java`和`Wife.java`两个类,这可能是表示一对多或者一对一的关系。如果要在DetachedCriteria中查询这两个实体的关联数据,可以先分别构建DetachedCriteria,然后在执行时...

    DetachedCriteria笔记

    DetachedCriteria

    DetachedCriteria查询

    DetachedCriteria 是 Hibernate 中的一种离线查询对象,它可以在不依赖 Session 的情况下生成动态 SQL 语句并进行查询。下面是 DetachedCriteria 查询的详细知识点: 创建 DetachedCriteria 对象 DetachedCriteria...

    DetachedCriteria使用介绍

    例如,使用 `searDc.add(Restrictions.eq("unid", userid))` 添加多个条件时,这些条件将以 AND 规则连接在一起。 - **多条件的 or 规则**:若要实现 OR 查询,需使用 `Restrictions.or()` 方法。例如:`searDc....

    Hibernate - DetachedCriteria 的完整用法

    而 DetachedCriteria 则是离线的,创建时无需 Session,可以使用 `DetachedCriteria.forClass(Class)` 或 `DetachedCriteria.forEntityName(String)` 方法来创建实例。 DetachedCriteria 提供了两个静态方法来...

    DetachedCriteria Criteria 使用方法

    ### DetachedCriteria 使用详解 #### 一、背景与概述 在Web开发中,经常会遇到需要根据用户提供的条件进行动态查询的需求。例如,在社交平台中,用户可以设置多种筛选条件来进行高级搜索,这时就需要动态生成SQL...

    浅谈DetachedCriteria和Criteria的使用方法(必看)

    浅谈DetachedCriteria和Criteria的使用方法 DetachedCriteria和Criteria是Hibernate框架中两个重要的查询工具,用于动态生成SQL语句,进行查询。在Web编程中,DetachedCriteria和Criteria可以解决动态条件查询的...

    我的处女作,整合SSH多数据源(添加、查询)

    源文件 博文链接:https://kings008.iteye.com/blog/246773

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

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

    Hibernate_query查询数据表中的一个字段.

    本篇将详细讲解如何使用Hibernate进行查询,特别是针对数据表中的一个特定字段。 一、Hibernate简介 Hibernate是Java领域的一个开源ORM框架,它简化了数据库操作,通过映射Java类到数据库表,可以将数据库操作转化...

    查询和并发

    在`hb_07_criteria`中,你将学习如何创建Criteria查询,包括添加限制条件、指定排序和分页,以及使用DetachedCriteria进行延迟加载等高级特性。 最后,我们来探讨**并发控制**。在多用户环境下,数据的并发访问是不...

    Hibernate开发指南PDF

    Hibernate 支持各种关联关系映射,如一个实体类可以拥有多个子类实例(一对多),一个实体类可以被多个子类实例拥有(多对一),以及一个实体类可以与其他多个实体类实例关联(多对多)。 **10. 延迟加载和懒加载**...

    Hibernate实体层设计

    2. 使用懒加载:对于一对多或多对多关系,可使用懒加载避免加载大量无用数据。 3. 数据库设计:在开始ORM设计前,先做好合理的数据库表结构设计,以利于ORM映射。 综上所述,《Hibernate实体层设计》涵盖了...

    Hibernate-基础联表模板

    `@ManyToMany`注解用于定义这种关系,联表查询时,可能需要使用`JOIN FETCH`来一次性获取所有关联数据,以避免N+1问题。 8. **Fetch策略** Hibernate提供了EAGER和LAZY两种加载策略。EAGER策略会立即加载关联数据...

    孙卫琴精通hibernate part2

    - Hibernate支持多种关系映射,本章将深入讲解一对一、一对多和多对一的关系配置,包括集合类型的选择(List, Set, Map等)和级联操作的设置。 4. **Chapter 9:多对多关系映射** - 多对多关系在数据库设计中常见...

    Hibernate教程

    Hibernate支持多种对象关系映射,包括一对一(@OneToOne)、一对多(@OneToMany)、多对一(@ManyToOne)和多对多(@ManyToMany)。这些关系的映射需要在实体类中正确配置,并在映射文件或注解中声明。 通过本教程...

    HQL是hibernate自己的一套查询

    DetachedCriteria是一种延迟加载的Criteria实现,允许在Session关闭之后继续使用Criteria。 ```java DetachedCriteria dc = DetachedCriteria.forClass(User.class); if (id != 0) { dc.add(Restrictions.eq("id",...

    hibernate项目开发

    Hibernate支持多种关联关系映射,如一对一(OneToOne)、一对多(OneToMany)、多对一(ManyToOne)和多对多(ManyToMany)。正确配置关联关系,可以实现对象间的导航访问,简化数据操作。 九、缓存机制 Hibernate...

    Hibernate手把手教学

    - Hibernate支持多种对象关系映射,如实体类之间的一对多、多对一、一对一关系。 9. **懒加载与立即加载** - 懒加载(Lazy Loading)延迟加载关联的对象,直到真正需要时才加载,提高性能。 - 立即加载(Eager ...

Global site tag (gtag.js) - Google Analytics