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属性都是指子表中记录的那个关联的外键!

关键的几句代码:

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

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

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

Hibernate之HQL左关联配置_第1张图片

Supplier供应商表:

Hibernate之HQL左关联配置_第2张图片

HQL配置文件与JAVABEAN代码:

报名:

供应商:

ItemEnroll报名表:

你可能感兴趣的:(Hibernate)