Programing/Spring Boot

Querydsl Pageable편하게 쓰기 확장함수, 유틸리티

딩코딩 2023. 7. 1. 00:51

아래 확장함수를 추가하여 기존 Pageable을 좀더 편하게 사용 할 수 있다.

QuerydslUtil 클래스 파일을 만들고 거기에 아래 함수 추가, 필요한곳에서 import해서 쓰면 된다

    fun <T> JPAQuery<T>.withPageable(pageable: Pageable): JPAQuery<T> {
        return this.limit(pageable.pageSize.toLong()).offset(pageable.offset)
    }

 

 

override fun findBySearchPage(condition: MemberSearchCondition, pageable: Pageable): Page<Member> {
      //사용법
      val content = query.selectFrom(member)
        .where(
            member.name.eq(condition.name),
            member.age.loe(condition.age)
            )
            .withPageable(pageable)
            .fetch()
        
        
        //기존  
        val content = query.selectFrom(member)
        .where(
            member.name.eq(condition.name),
            member.age.loe(condition.age)
            )
            .limit(pageable.pageSize.toLong())
            .offset(pageable.offset)
            .fetch()
        
}