1. 程式人生 > >Hibernate中的left outer join

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的條件。