728x90
select 결과 일부만 가져오기
- Projections 을 사용한다.
- Projections 을 활용하는 여러가지 방법이 있는데 가장 선호되는 방식은 @QueryProjection 이다.
- Projections 으로 읽어온 데이턴느 영속상태가 아니다. 즉, Dirty Checking 을 염려할 필요가 없다.
- Projections 은 기본이 즉시로딩이다. 지연로딩은 안되는듯?
querydsl 비교식
//Standard Alternative
expr isNotNull expr is not(null)
expr isNull expr is null
expr eq "Ben" expr === "Ben"
expr ne "Ben" expr !== "Ben"
expr append "X" expr + "X"
expr isEmpty expr is empty
expr isNotEmpoty expr not empty
// boolean
left and right left && right
left or right left || right
expr not !expr
// comparison
expr lt 5 expr < 5
expr loe 5 expr <= 5
expr gt 5 expr > 5
expr goe 5 expr >= 5
expr notBetween(2,6) expr not between (2,6)
expr negate -expr
// numeric
expr add 3 expr + 3
expr subtract 3 expr - 3
expr divide 3 expr / 3
expr multiply 3 expr * 3
expr mod 5 expr % 5
// collection
list.get(0) list(0)
map.get("X") map("X")
querydsl 에서 in 조건에서 사용할 리스트가 비어있을 경우?
mybatis 에서는 in 조건에서 사용할 리스트가 null 이거나 비어있을 경우 Exception 이 발생하기 때문에 in 절 자체를 동적쿼리로 구성했었다. 그런데 querydsl 에서는 in조건에서 사용할 리스트가 null 일 경우 해당 쿼리가 아예 수행되지 않으며 비어있을 경우 in 절 을 자동으로 and 1 = 2 로 치환해 준다.
https://suhwan.dev/2018/12/25/spring-data-jpa-projection-tips/
https://icarus8050.tistory.com/5
https://cheese10yun.github.io/querydsl-projections/
https://seokrae.gitbook.io/sr/spring/spring-jpa/springboot-jpa-querydsl
https://github.com/cheese10yun/blog-sample/blob/master/query-dsl/docs/query-dsl-study.md
http://querydsl.com/static/querydsl/3.5.1/reference/ko-KR/html_single/#alias
728x90
'Backend > JPA' 카테고리의 다른 글
[JPA] Entity 에 스키마 지정하기 (0) | 2022.03.15 |
---|---|
No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (0) | 2022.02.14 |
[JPA] 코틀린+JPA (0) | 2021.12.24 |
[JPA] 연관관계 매핑 (0) | 2021.12.17 |
[JPA] 대량 insert, mysql insert all (0) | 2021.12.16 |