Projections 결과 핸들링
Projections 사용법
public class ExampleDto {
private String placeName;
}1. Field 조회
static QExample.example
public class QueryRepositoryImpl {
...
...
public List<Example> findBy..() {
return jpaQueryFactory.select(
Projections.fields(
ExampleDto.class,
example.placeName)
.from(example)
.fetch();
}
// 별칭 적용
public class ExampleDto {
private String pName;
}
// 1. ExpressionUtils(subquery, alias)
select(
Projections.fields(
ExampleDto.class,
ExpressionUtils.as(
JPAExpressions.select(..)
.from(example)
.where(..)
, "alias")
)
...
// 2. entityFieldName.as()
select(
Projections.fields(
ExampleDto.class,
example.username.as("pName"))
...2. 생성자 조회
3. Property(Setter) 조회
단일 프로젝션, 다중 프로젝션
단일 프로젝션
다중 프로젝션
프로젝트 적용
적용 전
적용 후
Last updated