sql中on a.date = b.date所描述的对应关系应由映射文件设定,hql并没有对应表现。
如果非要这么写,用原生sql试一下吧,createSQLQuery

解决方案 »

  1.   

    如果hql如下
    select a,b from Member a left join Group b on a.name like '%id%' left join Role r
    是不是只能使用原生sql吗?
      

  2.   

    可以不用on吧,直接from Member a left join Role r ,Group b where a.date=b.date看看?
      

  3.   

    from Member a left join Role r ,Group b where a.date=b.date 

    from Member a left join Role r left join Group b on a.date=b.date
    在语义上就不同,不能简单替换.
      

  4.   

    要么你直接用sql执行查询,可以有on!
    如果采用你定义的对象,on是用一对多或多对一等配置出来的,用不着你自己弄!!
    取出来就是你要的!
    而且select a from Member a left outer join fetch a.b 
    b是a中的Group对象!