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

Hibernate之HQL左关联配置

 
阅读更多

HibernateHQL左关联配置

一般在单表中查询,hql类似于SQL的写法 不过是把字段变成属性名。当两个表关联查询的时候,一般联合查询也不会有问题。当如果需要左关联的时候,HQL就不能直接实现了,必须要配置主从表的关系才能够成功的实现SQL中的左关联!

现在有一个需求:

供应商表Supplier 与报名表ItemEnroll

现在有一个报名的功能,如果需要供应商登陆,我就会在ItemEnroll中用participateId字段 记录供应商的supplierId。如果不需要登陆,就要把participateId字段放空。

我现在需要做一个查询页面,查询报名的信息以及供应商的supplierName。这个时候 我需要用一句HQL实现。假设participateId字段为空,全关联ItemEnrollSupplier表的时候,没有供应商信息的报名也不会查询来。

我需要的效果是无论有没有供应商的信息,有一条报名信息 就要查出来一条报名信息。这个时候就需要左关联的写法。需要配置XML的文件。中间经历了一些曲折,最后把配出的结果与几点经验教训贴出来。

1. 当写左关联的时候,需要在配置文件中配置一对多或者多对一的关系。

2. HQL写左关联的时候,ON条件省略。在配置文件中配置。

3. 分析好是多对一还是一对多的关系。

4. 多对一或者一对多中配置的COLUMN属性都是指子表中记录的那个关联的外键!

关键的几句代码:

----------------------------------

以下为可看可不看的信息。供记忆!

----------------------------------------------------------------------

Supplier供应商表:

HQL配置文件与JAVABEAN代码:

报名:

供应商:

ItemEnroll报名表:

分享到:
评论

相关推荐

    hibernate-HQL用例

    **hibernate-HQL用例** Hibernate 是一个强大的Java持久化框架,它简化了与关系数据库之间的交互。HQL(Hibernate Query Language)是Hibernate提供的面向对象的查询语言,类似于SQL,但更贴近Java对象的思维模式。...

    hibernate 中HQL语句查询学习笔记

    **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向对象的方式来查询数据库,支持多种复杂的查询操作,如继承、多态及关联关系的查询。 ##### 默认数据库表和数据 在本文档...

    HibernateHql综合测试小程序

    本程序“HibernateHql综合测试小程序”是针对Hibernate中的HQL(Hibernate Query Language)进行的一系列功能测试,涵盖了二十多种不同的HQL语句,旨在帮助开发者深入理解和熟练运用Hibernate的查询能力。...

    Hibernate与HQL

    HQL(Hibernate Query Language)是Hibernate提供的面向对象的查询语言,类似于SQL,但更加面向Java对象,使得查询更加直观。 ### Hibernate配置文件 Hibernate的配置文件(通常命名为`hibernate.cfg.xml`)是项目...

    Hibernate HQL.txt

    此示例程序首先配置Hibernate并创建`SessionFactory`,然后通过`Session`执行HQL查询,并最终输出查询结果。这只是一个简单的例子,实际应用中可能会涉及更复杂的查询逻辑和数据处理。 总结来说,Hibernate HQL提供...

    Hibernate HQL.doc

    Hibernate HQL,全称为Hibernate Query Language,是Hibernate框架中用于对象关系映射(ORM)的查询语言。HQL的设计目标是提供一种面向对象的查询方式,使得开发者能够以类和对象的角度来操作数据库,而不是直接使用...

    hibernate-hql-testing-1.0.0.Alpha5.zip

    1. **Hibernate ORM框架**:介绍Hibernate的基本概念,包括实体类、配置文件、Session和SessionFactory,以及如何使用HQL进行查询和更新操作。 2. **HQL语言**:讲解HQL的语法特性,包括选择、投影、关联、聚合、...

    Hibernate3.x关联映射示例

    Hibernate 3.x 版本是其成熟且广泛使用的版本,提供了丰富的功能和优化,包括对象的持久化、查询语言HQL以及关联映射。本示例将深入探讨 Hibernate 3.x 中的关联映射,以帮助开发者更好地理解和应用这一关键技术。 ...

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

    Hibernate 支持多种方式来实现多表连接查询,包括 HQL(Hibernate Query Language)和 Criteria 查询。本项目主要关注 Criteria API 的使用,这是一种基于 Java 对象的查询方式,更加灵活且易于理解和维护。 **...

    Hibernate一对多关联实例

    1. 可以通过HQL(Hibernate Query Language)或者 Criteria API 来进行关联查询。例如,根据用户ID获取其所有的订单。 ```java Query query = session.createQuery("from User as u join fetch u.orders where u.id=...

    hibernate hql大全

    HQL的强大之处在于它将数据库操作与业务逻辑解耦,使得代码更易于理解和维护。以下是对HQL主要特性和用法的详尽解析。 ### 1. **基本查询** 在HQL中,你可以像SQL一样执行简单的查询,例如: ```java from ...

    Hibernate各种数据库关联annotatian和XML的配置集锦

    本文将深入探讨Hibernate 3.0中的数据库关联配置,包括注解和XML两种方式。 1. **注解配置** Hibernate注解提供了在实体类上直接声明数据库表映射和关联关系的方法。例如,@Entity表示一个类映射为数据库表,@...

    Hibernate hql查询

    本地查询是在Hibernate配置文件中预先定义的HQL或Criteria查询,然后在代码中通过名字引用它们。这种方式提高了代码的可读性和复用性。 **9. 性能优化** 在处理大量数据时,考虑使用分页查询以提高性能: ```java...

    hibernate多对多双向关联

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

    hibernate多对一关联关系

    - 当你保存或更新一个子实体时,如果启用了级联操作,Hibernate会自动处理与之关联的父实体,确保数据的一致性。 7. **级联删除**: - 要小心使用`CascadeType.DELETE`,因为它可能导致意外删除。如果一个父实体...

    Hibernate多对多关联关系demo

    - **查询关联**:可以使用HQL(Hibernate Query Language)或JPA的 Criteria API 查询关联的对象集合。 5. **级联操作**: 通过`cascade`属性,你可以控制实体间的级联操作,如`save-update`、`delete`等。这样,...

    HQL学习教程Hibernate入門

    Hibernate通过映射机制将Java类与数据库表关联,使得我们可以通过Java对象来操作数据库记录。这个映射通常通过XML配置文件或注解实现。一旦建立好映射,我们就可以使用HQL进行查询。 **HQL基本语法** 1. **查询...

    Hibernate关联关系练习【全】

    在Hibernate中,这些关联可以通过配置映射文件或者使用注解来实现。 一对一(OneToOne)关联是当两个实体之间存在唯一对应关系时使用,比如一个用户只能有一个账号。在Hibernate中,这可以通过@OneToOne注解实现,...

    hibernate一对多关联映射

    4.2 查询:通过Hibernate的Criteria API或HQL(Hibernate Query Language)可以轻松地查询一对多关联的数据。例如,获取包含所有员工的部门: ```java Session session = sessionFactory.openSession(); ...

    hibernate自身关联一对多实例(树形结构)

    此外,查询树形结构时,可以利用Hibernate的HQL(Hibernate Query Language)或Criteria API,根据需求选择性地加载节点及其子节点。 总结来说,"Hibernate自身关联一对多实例(树形结构)"涉及到Java对象与数据库表...

Global site tag (gtag.js) - Google Analytics