반응형
Querydsl의 정렬기능
쿼리dsl 에서 정렬은 orderBy()로 정렬할수있다.
정렬의 조건은 여러개 설정할수있고, 첫 파라미터가 먼저 적용이된다.
사진은 1. 나이순으로 역순 2. 나이이름으로 오름차순이다.
쿼리 dsl 의 페이징기능이다.
offset()은 페이지를 읽을 첫 시작점을, limit()는 몇개의 페이지를 읽을지 제한을 거는것이다.
쿼리 dsl에는 sum , avg , max, min, count 와같은 집합기능을 쓸수있다.
select에 타입이 다양한 값이 들어오면, 자동으로 튜플형태로 리스트를 반환한다.
이럴땐 튜플을 꺼내와서 값이 정확한지 확인을 해봐야한다.
그룹핑을 할때, 일반 SQL문과같이 gruopBy를 사용한다.
이 쿼리는 잘보면 최적화가 되어있지않다.
member -> team 으로 다대일 조인을하게되면 N+1문제가 발생한다.
이대로 돌려도 문제없인 잘나오지만 쿼리가 여러번나가기때문에, 하나로 줄이고싶으면 .fetchjoin()을 사용하자.
네이티브 SQL과 같이 join에 on절을사용해 필터링이 가능하다.
join_ on vs where
join_on 은 조인하기 전에 미리 조건의 부합하는걸 필터링으로 걸러낸다.
반면에 where조건은 우선 조인을먼저한뒤, 조건의 부합하는걸 걸러낸다.
따라서 둘의 결과값은 같지만 동작하는 방식은 다르다.
반응형
'자바 > JPA' 카테고리의 다른 글
JPA Entity 정적 팩토리 메소드에 관하여 (1) | 2022.09.19 |
---|---|
Querydsl 기능 (2) (0) | 2022.07.27 |
스프링 JPA Querydsl 소개 (0) | 2022.07.25 |
JPA 값타입 (0) | 2022.06.27 |
JPA : 상속관계 매핑 (0) | 2022.06.15 |