Skipalong's tistory
240112 TIL - BooleanExpression 본문
이번 프로젝트에서 QueryDSl로 페이징과 정렬 작업을 하고 있는데 QueryDsl을 사용할 때 BooleanExpression을 아주 유용하게 쓰고 있어서 BooleanExpression 에 대해 한 번 정리해보겠다.
위 코드에서 BooleanExpression인 courseIdEq(courseId) 와 isFollowing(userEntity) 은 jpaQueryFactory에서 where 절에 사용되어 페이징을 해주고있는데
이처럼 BooleanExpression을 메서드화 시켜주면 첫번째 BooleanExpression이 null값을 반환한다면 where절에 두번째 파라미터로 들어간 BooleanExpression이 적용되어 페이징을 처리해주는 것이다. 그리고 메서드화 할때 보면 parameter가 null이라면 메서드도 null을 반환하는 부분이 있는데 이를 통해 파라미터로 값을 넣어주면 페이징을 적용하고 파라미터에 값이 들어오지 않는다면 다른 BooleanExpression을 통해 다른 기준으로 페이징을 해주는 동적쿼리를 만들 수 있는 부분이 BooleanExpression의 장점이다.
이번프로젝트에서 페이징 및 정렬을 할 부분이 많아서 처음에 고생을 많이 했는데 이제 조금 감을 잡은 것 같다. 다음 TIL 에서는 정렬을 할 때 사용하는 OrderSpecifier를 정리해보겠다.
팀 프로젝트를 모두 마무리할때까지 화이팅!
'TIL' 카테고리의 다른 글
240116 TIL - React vs Vue (0) | 2024.01.17 |
---|---|
240115 TIL - OrderSpecifier (0) | 2024.01.16 |
240111 TIL - http,https / TCP/UDP (0) | 2024.01.12 |
240111 TIL - AWS accessKey, secretKey (0) | 2024.01.11 |
240109 TIL - Spotless (0) | 2024.01.10 |