728x90
QueryDSL의 기본 검색 조건 쿼리는 다음과 같이 사용할 수 있습니다.
@Test
@DisplayName("검색 조건 쿼리 EX")
fun testSearchQuery() {
val eq: BooleanExpression = member.username.eq("member1") //username = "member1"
val ne: BooleanExpression = member.username.ne("member1") //username != "member1"
val eq_not: BooleanExpression = member.username.eq("member1").not() //username != "member1
val isNotNull: BooleanExpression = member.username.isNotNull
val inq: BooleanExpression = member.age.`in`(10, 20)
val notIn: BooleanExpression = member.age.notIn(10, 20)
val between: BooleanExpression = member.age.between(10, 20)
val goe = member.age.goe(30) //age >= 30
val gt = member.age.gt(30) //age > 30
val loe = member.age.loe(30) //age <= 30
val lt = member.age.lt(30) //age < 30
val like = member.username.like("member%")//like 검색
val contains = member.username.contains("member")//%member%
val startsWith = member.username.startsWith("member%") //member%
val fetch = query
.selectFrom(member)
.where(
member.username.eq("username1")
)
.fetch()
}
검색 조건을 and(), or()로 연결할 수 있습니다.
JPQL이 제공하는 모든 검색 조건은 QueryDSL도 지원합니다.
참고
where()의 AND 조건을 ,를 사용해서 처리할 수 있습니다.
다음은 그 예시입니다.
val fetch = query
.selectFrom(member)
.where(
member.username.eq("username1"),
member.age.goe(30),
)
.fetch()
where() 에 파라미터로 검색조건을 추가하면 AND 조건이 추가됩니다.
이때 해당 값이 null 인 경우 무시됩니다.
이를 통해 동적 쿼리를 깔끔하게 작성할 수 있으며, 이는 이후에 설명하도록 하겠습니다.
Reference
728x90
'🏝️ Spring > QueryDsl' 카테고리의 다른 글
[QueryDSL] GroupBy (0) | 2021.12.23 |
---|---|
[QueryDSL] 집계 함수(count, sum, avg, max, min) (0) | 2021.12.23 |
[QueryDSL] 정렬 - orderBy() (0) | 2021.12.23 |
[QueryDSL] 결과 조회 (0) | 2021.12.23 |
[QueryDSL] Q-Type 사용법 (0) | 2021.12.23 |