这个是后台DAO里的代码:用的是HQL语句StringBuffer sql = new StringBuffer("select c,u,p,b,a from UmcCompanyBase c,UmcUserBase u,UmcUserPosition p,UmcUserBanding b,UmcAppCluster a where 1=1 ");sql.append(" and c.id = u.umcCompanyId ");
sql.append(" and p.umcCompanyId = c.id ");
sql.append(" and b.umc_user_id(+) = u.id");
sql.append(" and b.appClusterId = a.id ");
sql.append(" and p.umcUserId = u.id ");关键是上面红颜色的部分,因为HQL里面不能这样写。 所以请求各位大侠, 这里应该怎么改?

解决方案 »

  1.   

    HSQL标准SQL支持、?
     用  B LEFT JOIN U ON umc_user_id= id ,不知道可否
      

  2.   

    试试楼上的方法  使用标准sql 不要用(*)
      

  3.   

    是这样的
    项目要求用HQL 
    各位 left join 具体 怎么加?
    代码呢?
      

  4.   


    select c,u,p,b,a from UmcUserBase u lefe join UmcUserBanding b on b.umc_user_id = u.id
    join UmcCompanyBase c on c.id = u.umcCompanyId
    join UmcUserPosition p on p.umcCompanyId = c.id and p.umcUserId = u.id
    join UmcAppCluster a on b.appClusterId = a.id
      

  5.   

    试试上面的SQL lefe改为left 笔误