首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hibernate criteriaQuery -左连接

Hibernate criteriaQuery -左连接
EN

Stack Overflow用户
提问于 2016-01-25 20:15:32
回答 1查看 121关注 0票数 1

如何使用标准查询来应用左连接,我只能在互联网上找到内部连接条件。

代码语言:javascript
复制
        Criteria cr = this.sessionFactory.getCurrentSession().createCriteria(A.class, "a").createAlias("a.division", "division");                  
        List<A> list = cr.list();

除法是A类中的一个实体,这是返回我的内部连接结果。我想在除法实体上申请左加入:

代码语言:javascript
复制
select * from A as a left join divisions as division on division.id = a.id;

表A数据:

代码语言:javascript
复制
    id  name        division_id
    1   first name  1
    3   sec name    2
    6   fourth name 2
    5   3rd name    NULL

表司数据:

代码语言:javascript
复制
    id  type
    1   F
    2   G

内连接:

代码语言:javascript
复制
select * from A as a inner join division where a.division_id = division.id

内部连接结果:

代码语言:javascript
复制
+----+-------------+-------------+----+------+
| id | name        | division_id | id | type |
+----+-------------+-------------+----+------+
|  1 | first name  |           1 |  1 | F    |
|  3 | sec name    |           2 |  2 | G    |
|  6 | fourth name |           2 |  2 | G    |
+----+-------------+-------------+----+------+

左联接查询:

代码语言:javascript
复制
select * from A as a left join division on division.id = a.division_id;

左加入结果:

代码语言:javascript
复制
+----+-------------+-------------+------+------+
| id | name        | division_id | id   | type |
+----+-------------+-------------+------+------+
|  1 | first name  |           1 |    1 | F    |
|  3 | sec name    |           2 |    2 | G    |
|  6 | fourth name |           2 |    2 | G    |
|  5 | 3rd name    |        NULL | NULL | NULL |
+----+-------------+-------------+------+------+
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-26 06:37:50

如果您想要左联接,您可以在createAlias中提到它。默认为inner join

代码语言:javascript
复制
Criteria cr = this.sessionFactory.getCurrentSession().createCriteria(A.class, "a")
      .createAlias("a.division", "division", CriteriaSpecification.LEFT_JOIN);     // Add join type            
List<A> list = cr.list();

CriteriaSpecification.LEFT_JOIN

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35001512

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档