Hibernate之HQL左关联配置

本文介绍如何在Hibernate中使用HQL实现左关联查询。通过配置XML文件定义表间关系,确保即使供应商信息缺失也能查询到所有报名信息。文章详细展示了配置过程及代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 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报名表:

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值