`
longgangbai
  • 浏览: 7330883 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Hibernate关联查询中with的经典使用

阅读更多

 在项目采用Hibernate关联,采用关联使用比较简单,在关联时添加条件,减轻迪卡儿集的从而提高效率!

 

项目写HQL时使用的其中一个实例如下:

  StringBuilder sb = new StringBuilder();

 sb.append(" from Hotel h, RoomType r left join r.roomTypeSpecialPrices as rp with rp.from <= :checkInDate and rp.to >=:checkOutDate left join rp.roomTypeSpecialPriceInfos as ri with ri.dayNo=1,RoomTypePrice p ,RoomAmount a right join a.roomStatus as s, RoomTypePriceValidTime v\r\n");
  // 基本外键关联条件
  sb.append(" where h.id = r.hotelId and r.id = p.roomTypeId and r.id = s.roomTypeId and r.id = v.roomTypeId" +
    " and s.statusDate between p.from and p.to\r\n");

 

 

备注:如果在不采用with方式,将with中条件添加到where之后相等于,将关联表信息查询交叉之后过滤。

         采用with方式,相等于在查询交叉之前先过滤,减轻数据库负担。

 

分享到:
评论
4 楼 cmzx3444 2010-02-08  
不是吧,数据库没这么傻吧,他应该会也是先过滤再连接的啊,LZ能不能贴一段测试结果出来看看啊
3 楼 longgangbai 2010-01-14  
whaosoft 写道
再次支持你 希望有好的 你第一时间拿来分享
需注意的是 笛卡尔积 你写错了 下次小心哦 要不有可能有人会借题发挥

谢谢,本人打字没有注意,以后小心,^_^
2 楼 whaosoft 2010-01-13  
再次支持你 希望有好的 你第一时间拿来分享
需注意的是 笛卡尔积 你写错了 下次小心哦 要不有可能有人会借题发挥
1 楼 ckn126 2010-01-11  
我以前都是把过滤条件都放到where之后,现在是知道with语句可提高数据库的负担。我现在是明白了,非常感谢。。。

相关推荐

    Java Persistence with Hibernate

    本文将基于《Java Persistence with Hibernate》这一经典著作,深入探讨Hibernate的核心概念和技术细节。 #### 书评摘要与概述 《Java Persistence with Hibernate》被誉为是Hibernate领域的权威指南。本书由项目...

    hibernate实现递归查询

    本文将深入探讨如何使用Hibernate实现递归查询,以解决在数据层次结构中涉及父节点与子节点关系时的问题。递归查询通常用于处理树形结构的数据,例如组织结构、菜单系统或者文件目录等。 首先,我们需要了解递归的...

    Java+Persistence+with+Hibernate

    《Java+Persistence+with+Hibernate》是一本深入探讨如何...通过学习《Java+Persistence+with+Hibernate》,开发者可以掌握使用Hibernate进行Java持久化开发的技能,从而高效、灵活地管理Java应用程序中的数据库操作。

    hibernate的使用心得

    在本文中,我们将深入探讨Hibernate的使用心得,特别是关注HQL(Hibernate Query Language)查询的技巧和优化策略。HQL是Hibernate框架中用于操作对象关系映射的SQL方言,它允许开发者以面向对象的方式来编写查询,...

    Java Persistence with Hibernate, 2nd Edition

    《Java Persistence with Hibernate, 2nd Edition》是关于Java领域持久化技术的一本经典著作,主要聚焦于Hibernate框架的应用和深入理解。这本书详尽地介绍了如何利用Hibernate来处理Java应用程序中的对象关系映射...

    Manning.Java.Persistence.with.Hibernate

    《Manning.Java.Persistence.with.Hibernate》一书是Hibernate领域的权威指南,由Hibernate项目的主导开发者撰写,深入浅出地讲解了Hibernate框架的核心概念、架构设计、配置方法以及在实际开发中的应用技巧。...

    Manning - Java Persistence With Hibernate.pdf

    《Java Persistence with Hibernate》是Java开发领域中一本深入探讨Hibernate持久化框架的重要著作。这本书由Christian Bauer和Gavin King合著,详细阐述了如何利用Hibernate进行数据库操作和对象关系映射(ORM)。 ...

    Hibernate+中文文档

    7.3. 使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. 一对一(one to one) 7.3.4. 多对多(many to many) 7.4. ...

    Java.Persistence.with.Hibernate.pdf

    ### Java Persistence with Hibernate #### 知识点概览 1. **Hibernate介绍** - 开源框架背景 - ORM(对象关系映射)概念 - Hibernate在Java开发中的地位与作用 2. **Hibernate架构与配置** - 核心组件分析 ...

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

    7.3. 使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. 一对一(one to one) 7.3.4. 多对多(many to many) 7.4. ...

    hibernate必须包/教程/查询

    **标题与描述解析** 标题"hibernate必须包/教程/查询"暗示了我们要讨论的是Hibernate框架的基础包、学习教程以及...通过这些资源,开发者可以深入理解Hibernate框架,熟练掌握其查询机制,并成功地在实际项目中运用。

    Java.Persistence.with.Hibernate.2nd.Edition 源代码

    《Java Persistence with Hibernate》第二版是一本深入探讨Java持久化技术与Hibernate框架的权威书籍。源代码提供了书中各个示例的实现,帮助读者更直观地理解理论知识,并能在实际项目中应用。在这个压缩包文件中,...

    Hibernate 中文 html 帮助文档

    7.3. 使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. 一对一(one to one) 7.3.4. 多对多(many to many) 7.4. 双向...

    Hibernate中文详细学习文档

    7.3. 使用连接表的单向关联(Unidirectional associations with join tables) 7.3.1. 一对多(one to many) 7.3.2. 多对一(many to one) 7.3.3. 一对一(one to one) 7.3.4. 多对多(many to many) 7.4. ...

    Manning.Java.Persistence.with.Hibernate.Nov.2006.pdf

    4. **映射文件**:书中会详细讲解XML映射文件(hibernate.hbm.xml)的编写,包括实体类与数据库表之间的映射,字段与列的对应,以及一对一、一对多、多对多等各种关联关系的配置。 5. **HQL与Criteria API**:除了...

    hibernate一对多关联映射

    在Java的持久化框架Hibernate中,一对多关联映射是一种常见的关系数据库模型,它用于表示一个实体(类)可以与多个其他实体实例相关联的情况。本文将深入探讨Hibernate中的一对多关联映射,以及如何实现双向关联。 ...

    Manning.Java.Persistence.with.Hibernate[Hibernate实战第二版].pdf

    《Java Persistence with Hibernate》是Java开发领域中一本极具影响力的书籍,尤其对于那些专注于持久层框架技术的开发者来说,它提供了深入理解和使用Hibernate的宝贵资源。这本书的第二版由Hibernate的创始人Gavin...

    Getting Started with Hibernate search

    通过使用查询语言,如Lucene查询语法或更高级的DSL(如Query DSL),开发者可以构建复杂的全文搜索查询。Hibernate Search提供了丰富的API,允许你以面向对象的方式构造查询,从而实现对索引数据的高效检索。 ### ...

Global site tag (gtag.js) - Google Analytics