/* 검색 */
@Override
public Slice<Meeting> findByKeyword(String keyword, Pageable pageable) {
QMeeting subMeeting = new QMeeting("subMeeting");
List<Meeting> meetings = queryFactory.selectFrom(meeting)
.where(meeting.id.in(
JPAExpressions.selectDistinct(subMeeting.id)
.from(subMeeting)
.where(
titleLike(keyword)
.or(addressLike(keyword))
.or(contentLike(keyword)),
isOpenOrFull()
)
))
.orderBy(
meeting.meetingDate.asc(),
meeting.registeredCount.desc()
)
.limit(pageable.getPageSize() + 1)
.offset(pageable.getOffset())
.fetch();
return new SliceImpl<>(meetings, pageable, hasNextPage(meetings, pageable.getPageSize()));
}
Querydsl 서브쿼리 사용하는 방법(select절, where절)