`

Hibernate中的left outer join

 
阅读更多

首先,最简单的是一对多的连接,比如:

select student from Teacher t join t.students student where student....

如果是多对一呢?这里有隐式和显示的区别(上面的一对多的情况属于隐式连接)。可以像下面这样

select student from Student student 
where student.teacher.age>30

这属于隐式的,Hibernate会自动连接Teacher表。也可以像下面这样显示的连接:

select student from Student student
left outer join student.teacher t 
where t.age>30


这里明确的说明了连接Teacher表的时候要使用左外连接。这里容易忽略outer,如果写成下面的样子:

select student from Student student
left join student.teacher t 
where t.age>30

这是错误的写法,Hibernate将不认识t.age的条件。



分享到:
评论

相关推荐

    HQL Hibernate查询语言

    语句 inner join、left outer join 以及 right outer join 可以简写。例如:from Cat as cat join cat.mate as mate left join cat.kittens as kitten。 此外,还有一个"fetch"连接允许仅仅使用一个选择语句就将相...

    Hibernate 内连接和左外连接

    左外连接(LEFT OUTER JOIN)则返回第一个表的所有行,即使在第二个表中没有匹配的行。如果在第二个表中找不到匹配项,结果集中的对应列将填充NULL值。继续我们的例子,如果我们想获取所有员工的信息,包括他们所在...

    hibernateHQL关联查询

    - **左外连接(Left Outer Join)**:除了返回两个表中满足连接条件的记录外,还会返回左表中不满足连接条件但右表中不存在匹配项的记录。 - **右外连接(Right Outer Join)**:除了返回两个表中满足连接条件的...

    Hibernate Query Language

    - **关联与连接**:支持内连接(`inner join`)、外连接(`left outer join`, `right outer join`)、全连接(`full join`),用于处理实体之间的关联。 - **投影**:通过`select`子句选择返回的字段或元素。 - **...

    hsql查询语法

    HSQL支持的连接类型包括inner join、left outer join、right outer join和full join。例如: from Formula form full join form.parameter param 4. FETCH连接 HSQL还支持FETCH连接,用于将关联的对象或一组值的...

    Hibernate HQL.doc

    HQL支持四种类型的连接:inner join(内连接)、left outer join(左外连接)、right outer join(右外连接)和full join(全连接)。简写形式如`join`和`left join`也是允许的。`fetch`连接用于一次性初始化相关联...

    hibernate的使用心得

    Hibernate支持多种连接类型,包括`inner join`(内连接)、`left outer join`(左外连接)、`right outer join`(右外连接)和`full join`(全连接)。`with`关键字用于提供额外的连接条件,类似于SQL中的`on`关键字...

    Hibernate 查询语言

    2. **LEFT OUTER JOIN**:返回左表中的所有记录,并在右表中匹配的记录不存在时,用 NULL 填充。 ```hql select employee.ID as id1, employee.Name as name1, department.ID as id2, department.Name as name2 ...

    hibernate 中HQL语句查询学习笔记

    SELECT s, c FROM Student s LEFT OUTER JOIN FETCH s.courses c; ``` 这里使用了`FETCH`关键字来立即加载关联数据。 ##### 右外连接 与左外连接相反,右外连接会返回右表的所有记录,并尽可能地与左表的记录匹配...

    Hibernate查询语言

    HQL支持多种类型的连接,如内连接(inner join)、左外连接(left outer join)、右外连接(right outer join)和全连接(full join)。例如: ```sql from Cat as cat inner join cat.mate as mate left outer join...

    HIBERNATE HQL

    - 支持多种连接类型,包括 `inner join`(内连接)、`left outer join`(左外连接)、`right outer join`(右外连接)和 `full join`(全连接)。其中,`full join` 不太常用。 - `join` 关键字还可以简写,例如 `...

    hibernate 的HQL 语言入门与提高

    `join` 关键字支持不同类型的连接,包括 `inner join`(内连接)、`left outer join`(左外连接)、`right outer join`(右外连接)和 `full join`(全连接)。简写形式如 `join` 和 `left join` 也常被使用。此外,...

    Hibernate查询语言(HQL) 语法参考

    我们也可以使用 left outer join、right outer join、full join 等连接类型。 fetch 连接 fetch 连接允许我们使用一个选择语句就将相关联的对象或一组值的集合随着他们的父对象的初始化而被初始化,例如: ``` ...

    Hibernate_HQL大全

    4. **JOIN与ASSOCIATION**:HQL支持INNER JOIN、LEFT OUTER JOIN、RIGHT OUTER JOIN和FULL JOIN四种连接类型。通过JOIN关键字,HQL能够处理实体间的关联,从而实现对关联实体的查询。例如,“JOIN cat.mate as mate...

    Hibernate Fetch 的作用

    例如,在上面的代码片段中,通过`left outer join fetch parent.childs`语句,我们告诉Hibernate在加载`Parent`实体时,也一并加载所有相关的`Child`实体。这样,即使`Parent`实体的`childs`属性被标记为`lazy="true...

    Hibernate查询语句教程a

    - **LEFT (OUTER) JOIN**:返回左表(Employee)的所有记录,即使在右表(Department)中没有匹配项。未匹配的记录在右表字段显示为NULL。例如,上述查询改为`left join`,将包含所有员工,即使他们可能没有分配到...

    Hibernate查询语言(HQL)

    - **LEFT OUTER JOIN**:左外连接,返回左侧实体的所有记录,以及右侧实体匹配的记录。 ```sql FROM com.example.Cat AS cat LEFT OUTER JOIN cat.kittens AS kitten; ``` - **FULL JOIN**:全连接,返回两个...

    HQL详解

    其中,`INNER JOIN`、`LEFT OUTER JOIN`和`RIGHT OUTER JOIN`可以简化为: ``` FROM Cat AS cat JOIN cat.mate AS mate LEFT JOIN cat.kittens AS kitten ``` 此外,`FETCH`连接允许在一个选择语句中同时初始化父...

    hibernate的hql语句

    连接类型包括:`inner join`(内连接)、`left outer join`(左外连接)、`right outer join`(右外连接)和`full join`(全连接)。`join`的简写形式如`from Cat as cat join cat.kittens as kitten`,简化了查询...

Global site tag (gtag.js) - Google Analytics