인프런 커뮤니티 질문&답변

Rorschach님의 프로필 이미지

작성한 질문수

실전! Querydsl

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

21.12.27 16:02 작성

·

243

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

김영한님의 프로필 이미지
김영한
지식공유자

2021. 12. 28. 21:13

안녕하세요. Rorschach님

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

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

감사합니다.

Rorschach님의 프로필 이미지
Rorschach
질문자

2021. 12. 29. 11:04

for(String p : permissionList) {

builder.and(

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

    )

}

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

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

김영한님의 프로필 이미지
김영한
지식공유자

2021. 12. 29. 22:15

공유 감사합니다^^