본문 바로가기

querydsl3

[QueryDSL] Pageable 정렬하기 QueryDsl과 Pageable을 이용한 Sort 기능 사용법 QueryDsl에서는 Client가 제공해준 Order를 사용하는 방법이 여러가지가 있다. 그 중 다음과 같은 코드를 사용하면 복잡한 분석기능을 사용하지않고, 클라이언트가 pageable에 제공하는 sort 정보를 모두 한 코드로 사용할 수 있다. for (Sort.Order order : pageable.getSort()) { PathBuilder path = new PathBuilder(Object.class, order.getProperty()); query.where(builder).orderBy(new OrderSpecifier(com.querydsl.core.types.Order.valueOf(order.getDirection().. 2024. 2. 14.
Querydsl OneToMany 조건 검색, ListPath 내가 원했던 것은 다음과 같다. 1:n 매핑관계를 나타내는 Entity이다. 예시라서 디테일한건 없음. @Data @Entity public class User { private Long id; private String name; private List profiles; } @Data @Entity public class Profile { private Long id; private User user; private Type type; // PUBLIC, PRIVATE, private String nickName; } DB 테스트 데이터 // user { id : 1, name : "user1" } // 조회할 데이터 { id : 2, name : "user2" } // profile { id : 1,.. 2021. 10. 20.
QueryDSL 서브쿼리 Sort 적용 for (Sort.Order order : pageable.getSort()) { PathBuilder path = new PathBuilder(Object.class, order.getProperty()); query.where(builder).orderBy(new OrderSpecifier(com.querydsl.core.types.Order.valueOf(order.getDirection().name()), path)); } 1. 위와 같이 작성할 경우, 프론트에서 as 로 표현하는 값을 내려주면 entity와 무관하게 정렬 가능. PathBuilder entityPath = new PathBuilder(Entity.class, "entity"); 2. 위와 같은 형태로 사용할 경우 pageable.. 2021. 10. 12.