是否所有加入JPQL equijoins?

时间:2013-08-29 14:03:32

标签: join jpql

我指的是使用关键字[LEFT [OUTER] |的连接) INNER]仅加入。不是theta加入。 由于JPQL中没有ON关键字,是否可以安全地假设始终隐含和使用相等比较?

1 个答案:

答案 0 :(得分:1)

在JPQL中,连接基于与@ManyToOne,@ OneToMany,@ OneToOne注释映射的关联。
发出JPQL查询时,连接将转换为SQL ON关键字,例如:

JPQL

from Cat as cat
    inner join cat.owner as owner
    left outer join cat.kittens as kitten

转换为

select c.* 
from Cat c
inner join Owner owner ON owner.id = cat.owner_id  
left outer join Cat kitten ON kitten.mother_id = c.id 

所以,是的,对于JPQL连接,可以安全地假设始终隐含相等比较。