`
lpacec
  • 浏览: 172295 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Hibernate进行多表关联查询

阅读更多

Hibernate对多个表进行查询时,查询结果是多个表的笛卡尔积,或者称为“交叉”连接。 例如:from Student,Book from Student as stu,Book as boo from Student stu,Book boo。注意:让查询中的Student和Book均是表student和book对应的类名,它的名字一定要和类的名字相同,包括字母的大小写。

别名应该服从首字母小写的规则是一个好习惯,这和Java对局部变量的命名规范是一致的。

下面列举一个完整的例子来说明Hibernate对多个表进行关联查询(其中粗体是我们要特别注意的地方,相应表tBookInfo和BookSelection的结构和其对应的hbm.xml、class文件就不一一列举了):

java 代码
  1. String sTest = "from tBookInfo book, BookSelection sel where book.id = sel.bookId";    
  2.   
  3. Collection result = new ArrayList();    
  4.   
  5. Transaction tx = null;    
  6.   
  7. try {    
  8.   
  9.  Session session = HibernateUtil.currentSession();    
  10.   
  11.  tx = session.beginTransaction();    
  12.   
  13.  Query query = session.createQuery(sql);    
  14.   
  15.  result = query.list();    
  16.   
  17.  tx.commit();    
  18.   
  19. catch (Exception e) {    
  20.   
  21.  throw e;    
  22.   
  23. finally {    
  24.   
  25.  HibernateUtil.closeSession();    
  26.   
  27. }    
  28.   
  29. ArrayList sList = (ArrayList) result;    
  30.   
  31. Iterator iterator1 = sList.iterator();    
  32.   
  33. while (iterator1.hasNext()) {    
  34.   
  35.  Object[] o = (Object[]) iterator1.next();    
  36.   
  37.  tBookInfo bookInfo = (tBookInfo) o[0];    
  38.   
  39.  BookSelection bookSelect = (BookSelection) o[1];    
  40.   
  41.  System.out.println("BookInfo-Title: " + bookInfo.getTitle());    
  42.   
  43.  System.out.println("BookSelection-BookSelectionId: " + bookSelect.getId());    
  44.   
  45. }     
  46.   
分享到:
评论

相关推荐

    hibernate多表联合查询

    本文将详细介绍如何利用Hibernate进行多表联合查询,并通过一个具体的例子来展示其强大功能。 #### 二、多表联合查询概述 多表联合查询是指在一个查询语句中同时从两个或两个以上的表中获取数据。在关系型数据库中...

    Hibernate 多表连接分页查询示范项目

    项目通过 Hibernate Criteria API 展示了如何进行多表连接查询,并结合分页功能,有效地获取和展示相关数据。项目源码会详细展示如何创建 Criteria 查询,如何设置 JOIN 条件,以及如何实现分页。 **具体步骤** 1....

    Hibernate连表查询 Hibernate连表查询

    根据提供的文件信息,我们可以深入探讨Hibernate中的连表查询方法及其应用。下面将详细介绍与标题、描述及部分代码相关的几个核心知识点: ### Hibernate 连表查询基础 Hibernate 是一个开源的对象关系映射(ORM)...

    hibernate 进行多表查询每个表中各取几个字段

    本篇文章将探讨如何在Hibernate中进行多表查询,并从每个表中选取特定的字段。 一、Hibernate的多表查询基础 在Hibernate中,多表查询通常涉及到关联关系的映射,包括一对一(OneToOne)、一对多(OneToMany)、多...

    hibernate多表查询详解

    例如,通过`Criteria API`或`HQL`(Hibernate Query Language)进行多表联接查询,可以将查询结果转化为Object数组。这种方法简单直观,但缺乏类型安全,因为数组中的每个元素都是Object,需要在代码中进行强制类型...

    hibernate 多表关联 中间表

    例如,User表和Role表通过UserRoles表进行关联,UserRoles表有User_id和Role_id字段。 在Hibernate中,实现多对多关联映射有以下步骤: 1. **配置实体类**:首先,为每个参与的实体类定义属性并创建对应的Java类。...

    hibernate代码优化基于配置的多表查询

    在进行多表查询时,Hibernate默认可能会生成多个单表查询,这会导致大量的数据库往返,降低效率。通过配置`@JoinTable`、`@JoinColumn`或`@ManyToMany`注解,我们可以指定实体间的关联关系,从而让Hibernate执行...

    hibernate多对多关联映射

    在Java的持久化框架Hibernate中,多对多关联映射是一种常见的关系数据库模型映射方式,用于处理两个实体之间存在多个实例互相关联的情况。本文将深入探讨Hibernate如何实现多对多关联映射,并通过实际例子解析相关...

    Hibernate基于连接表的一对多单向关联

    在Java开发中,Hibernate是广泛使用的工具,它允许开发者将Java类与数据库表进行映射,简化了数据操作。在数据库设计中,一对多关联是指一个表中的记录可以对应另一个表中的多个记录,例如,一个部门可以有多个员工...

    hibernate多对多查询

    进行多对多查询时,我们可以通过Hibernate的Criteria API、HQL(Hibernate Query Language)或JPA的Query API来实现。例如,如果我们想找到所有选修了特定课程的学生,可以使用HQL: ```java String hql = "FROM ...

    hibernateHQL关联查询

    在实际开发中,HQL关联查询的应用场景非常广泛,特别是在需要跨多个实体进行数据检索的情况下。例如,在电子商务系统中,我们需要获取用户信息及其相关的订单信息时,就可以利用HQL关联查询来简化这一过程。此外,当...

    Hibernate多对多关联添加及查询示例

    本示例主要关注的是Hibernate中的多对多关联映射及其添加与查询方法。 多对多关联是数据库设计中的一种常见关系类型,指的是两个实体之间可以存在多个对应关系。例如,在学生与课程的关系中,一个学生可以选修多门...

    Hibernate ORM - 多对多双向连接表关联关系

    本文将深入探讨Hibernate ORM中的一个关键概念——多对多双向连接表关联关系。这种关联关系在实际业务场景中非常常见,比如用户与角色、课程与学生等例子,都需要用到多对多的关系来描述它们之间的复杂联系。 首先...

    day36 04-Hibernate检索方式:多表连接查询

    标题中的“day36 04-Hibernate检索方式:多表连接查询”表明这是一个关于Hibernate框架的教程,重点讲解如何在Hibernate中进行多表连接查询。在这个主题中,我们将深入探讨Hibernate的ORM(对象关系映射)机制以及...

    Hibernate各种查询:联表查询 分页查询 位置参数查询(?) 占位符查询(冒号查询) 统计查询

    总的来说,Hibernate的`Criteria`、`Query`以及QBC(Query By Criteria)提供了灵活且强大的查询手段,它们不仅支持基本的单表查询,还能处理复杂的联表、分页、参数绑定和统计需求,是Java开发者进行数据库操作的...

    hibernate多对一关联demo

    【标题】:“Hibernate多对一关联demo” 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作。本教程将详细解释如何在Hibernate中实现多对一的关联关系,以及如何通过一个实际的示例...

    struts2+hibernate+spring多表操作示例

    4. **多表查询与操作**:在多表关联的场景下,常见的操作有联合查询、级联保存/更新和级联删除。例如,通过Hibernate的 Criteria 或 HQL 查询语言,可以方便地执行多表的JOIN操作。级联保存时,只需要保存父对象,...

    Hibernate-基础联表模板

    "Hibernate-基础联表模板"是针对Hibernate中联表查询的一个实用工具,旨在帮助开发者快速地进行多表关联查询,而不必记住复杂的SQL语句。 1. **Hibernate简介** Hibernate是一种开源的ORM框架,它允许开发者将Java...

    Hibernate多表查询.txt

    在多表查询中,HQL支持通过逗号分隔的表名来表示联合查询,同时利用`where`子句来定义表之间的关联条件。例如,在示例代码中,通过`from tBookInfo book, BookSelection sel where book.id = sel.bookId`这样的HQL...

    hibernate多对多双向关联

    7. **查询操作**:通过Criteria API、HQL(Hibernate Query Language)或JPQL(Java Persistence Query Language)进行关联查询,获取关联数据。 8. **事务管理**:由于多对多关联涉及到多个数据库操作,需要在事务...

Global site tag (gtag.js) - Google Analytics