【发布时间】:2013-09-02 00:22:30
【问题描述】:
我指的是使用关键字 [LEFT [OUTER] | 的连接。 INNER] 仅加入。不去 theta 加入。 由于 JPQL 中没有 ON 关键字,因此假设始终隐含并使用相等比较是否安全?
【问题讨论】:
我指的是使用关键字 [LEFT [OUTER] | 的连接。 INNER] 仅加入。不去 theta 加入。 由于 JPQL 中没有 ON 关键字,因此假设始终隐含并使用相等比较是否安全?
【问题讨论】:
在 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 连接,可以安全地假设始终隐含相等比较。
【讨论】: