这个是后台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里面不能这样写。 所以请求各位大侠, 这里应该怎么改?
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里面不能这样写。 所以请求各位大侠, 这里应该怎么改?
用 B LEFT JOIN U ON umc_user_id= id ,不知道可否
项目要求用HQL
各位 left join 具体 怎么加?
代码呢?
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