从Hibernate 3.6文档中:
您可以使用HQL with关键字提供额外的连接条件。
from Cat as cat
left join cat.kittens as kitten
with kitten.bodyWeight > 10.0
这个
with
从句允许在JOIN条件(ON从句)上添加限制。JPQL中有类似的功能吗?当我运行以下JPQL时:
select c from ContainerDef c left join fetch c.displayState ds where c.id = 1 and ds.user.id = 2
以下是生成的SQL语句:
select
...
from
CONTAINER_DEF containerd0_
left outer join
USER_CONTAINERDEF displaysta1_
on containerd0_.CONTAINERDEF_ID=displaysta1_.CONTAINERDEF_ID
where
containerd0_.CONTAINERDEF_ID=?
and displaysta1_.AUTHUSER_ID=?
真正需要生成的是:
select
...
from
CONTAINER_DEF containerd0_
left outer join
USER_CONTAINERDEF displaysta1_
on containerd0_.CONTAINERDEF_ID=displaysta1_.CONTAINERDEF_ID
and displaysta1_.AUTHUSER_ID=?
where
containerd0_.CONTAINERDEF_ID=?
我确定我缺少正确的JPQL子句来替代HQL中的with
。
with
。 - axtavt