由Hibernate 3.6的文檔:HQL '與' 子句中JPQL
你可能會提供額外的加入使用HQL與關鍵字條件。
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=?
我相信我」 m缺少HQL with
的正確JPQL子句。
來自Hibernate文檔:'HQL也定義了一個WITH子句來限定連接條件。同樣,這是HQL特有的; JPQL沒有定義這個特性。http://docs.jboss.org/hibernate/orm/4.1/devguide/en-US/html/ch11.html#d5e2705 – RinaldoPJr
請注意,在Hibernate中,您可以在JPQL中使用'with'以及。 – axtavt
@axtavt我試過了,它拋出IllegalArgumentException。 – kmansoor