• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

QueryDSL collection 다루기 질문있습니다.

21.12.27 16:02 작성 조회수 202

0

List<String> permissionList = Arrays.asList("CONTENT_READ", "CONTENT_WRITE");

User --- UserPermission --- Permissions
로 각각 one to many ,many to one 으로 이루어져있는데

퍼미션들을 하나라도 가지고 있는 유저를 뽑을 땐

qf.selectFrom(user).innerJoin(user.userPermissions, permission).on(user.permissions.`in`(permissionList))

이렇게 할 수 있는 것 같은데 다 가지고 있는 유저를 선택할 땐 어떻게 해야할까요?

 

답변 1

답변을 작성해보세요.

0

안녕하세요. Rorschach님

사실 이 질문은 SQL 관련 질문입니다.

SQL 쿼리로 이 문제를 어떻게 해결할 수 있는지 자세히 남겨주세요.

감사합니다.

Rorschach님의 프로필

Rorschach

질문자

2021.12.29

for(String p : permissionList) {

builder.and(

User.userPermissions.any().permission.eq(p)

    )

}

서브쿼리형태로 해결했습니다!

다만 서브쿼리 where절 안에서 select 를 많이하게 되는 것 같습니다

공유 감사합니다^^