1. Builder를 사용 하는 방법
fun searchByBuilder(condition: MemberSearchCondition): List<Member>{
val builder = BooleanBuilder()
//StringUtils.hasText를 통해 null Or "" 대응
if(StringUtils.hasText(condition.name)){
builder.and(member.name.eq(condition.name))
}
if(StringUtils.hasText(condition.age)){
builder.and(member.age.eq(condition.age))
}
return queryFactory.selectFrom(member)
.where(builder)
.fetch()
}
2. Where절 파라미터를 사용하는 방법
fun search(condition: MemberSearchCondition): List<Member>{
return queryFactory.selectFrom(member)
.where(nameEq(condition.name),
ageEq(condition.age))
.fetch()
}
fun nameEq(name: String): BooleanExpression {
return name.let{member.name.eq(condition.name)}
}
fun ageEq(age: String): BooleanExpression {
return age.let{member.age.eq(condition.age)}
}
'Programing > Spring Boot' 카테고리의 다른 글
| 코틀린 스프링부트 Querydsl 사용 예제 (0) | 2023.07.03 |
|---|---|
| Scanner 테스트코드 작성하기 System.setIn() (0) | 2023.07.02 |
| SpringBoot 테스트코드 작성시 Security 권한 무시하는법 @PreAuthorize우회 하기 (0) | 2023.07.01 |
| Querydsl Pageable편하게 쓰기 확장함수, 유틸리티 (0) | 2023.07.01 |
| Querydsl 에러 java.lang.NoSuchFieldError: TREATED_PATH (0) | 2023.06.30 |