Hibernate之HQL左关联配置
一般在单表中查询,hql类似于SQL的写法 不过是把字段变成属性名。当两个表关联查询的时候,一般联合查询也不会有问题。当如果需要左关联的时候,HQL就不能直接实现了,必须要配置主从表的关系才能够成功的实现SQL中的左关联!
现在有一个需求:
供应商表Supplier 与报名表ItemEnroll
现在有一个报名的功能,如果需要供应商登陆,我就会在ItemEnroll中用participateId字段 记录供应商的supplierId。如果不需要登陆,就要把participateId字段放空。
我现在需要做一个查询页面,查询报名的信息以及供应商的supplierName。这个时候 我需要用一句HQL实现。假设participateId字段为空,全关联ItemEnroll,Supplier表的时候,没有供应商信息的报名也不会查询来。
我需要的效果是无论有没有供应商的信息,有一条报名信息 就要查出来一条报名信息。这个时候就需要左关联的写法。需要配置XML的文件。中间经历了一些曲折,最后把配出的结果与几点经验教训贴出来。
1. 当写左关联的时候,需要在配置文件中配置一对多或者多对一的关系。
2. HQL写左关联的时候,ON条件省略。在配置文件中配置。
3. 分析好是多对一还是一对多的关系。
4. 多对一或者一对多中配置的COLUMN属性都是指子表中记录的那个关联的外键!
关键的几句代码:
----------------------------------
以下为可看可不看的信息。供记忆!
----------------------------------------------------------------------
Supplier供应商表:
HQL配置文件与JAVABEAN代码:
报名:
供应商:
ItemEnroll报名表: