首页 > jpa高级查询如何写join left on?

jpa高级查询如何写join left on?

select r.role_id,p.duty_id from s_duty_auth p
                    left join s_role r on r.role_id = p.role_id
                    
                    where.......

如上面所示:这是一个子查询,那么该如何写呢这个??

以下是我尝试的,但是好乱,不能成功,如何写??

Subquery<DutyAuth> subquery=query.subquery(DutyAuth.class);
                    
                    Root<DutyAuth> subroot=subquery.from(DutyAuth.class);
                    
                    subquery.select(subroot.get("roleId"));
                    
                    SetJoin<DutyAuth, Role> setJoin=subroot.join(subroot.getModel().getSet("roleId",Role.class),JoinType.LEFT);
                    
                    Predicate predicate=cb.equal(setJoin.get("roldId"), subroot.get("roleId"));
                    
                    subquery.where(predicate);
                    
                    Predicate predicate2=cb.exists(subquery);
                    list.add(predicate2);
【热门文章】
【热门文章】