HQL'With statement'导致额外的连接

时间:2017-02-15 19:14:40

标签: sql hibernate hql

HQL With语句会产生奇怪的行为。我期待以下查询:

select
    s.id, s.nom,s.dateDebutPublication,s.dateFinPublication,r.codeUtilisateur
from
    Sondage s left outer join
    s.repondant r with r.codeUtilisateur=:utilisateur

生成这个sql请求:

select ...
from
    SON_SONDG sondage0_ 
left outer join
    SON_REPND repondant1_ 
        on sondage0_.SEQ_SONDG=repondant1_.SEQ_SONDG 
        and (
            repondant1_.CODE_UTILS=?
        ) 

相反,它会创建一个额外的连接,返回更多行

left outer join
    SON_REPND repondant1_ 
        on sondage0_.SEQ_SONDG=repondant1_.SEQ_SONDG 
left outer join
    SON_REPND repondant2_ 
        on repondant1_.SEQ_REPND=repondant2_.SEQ_REPND 
        and (
            repondant2_.CODE_UTILS=?
        ) 

编写de HQL查询的正确方法是什么,以便返回我预期的sql查询?

0 个答案:

没有答案