querydsl 에서 서브쿼리로 exists 를 사용하는 예제이다.
쿼리 성능상 in 보다는 exists 를 사용하는게 유리하다.
게시글 댓글에 특정 단어가 있는 게시물을 검색하는 쿼리이다.
쿼리문
SELECT *
FROM Board A
WHERE EXISTS (SELECT 1 FROM Comment WHERE no = A.no AND content LIKE '%내용%')
;
위 쿼리를 querydsl 로 표현하면 아래와 같다.
querydsl
List<Board> list =
query.selectFrom(board)
.where(JPAExpressions.selectFrom(comment).where(comment.board.eq(board)
.and(comment.content.contains("내용"))).exists())
.fetch();
'Java > JPA' 카테고리의 다른 글
JPA QueryDSL 에서 MAX 엔티티 가져오기 (0) | 2019.10.07 |
---|