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 인 경우 무시됩니다.
이를 통해 동적 쿼리를 깔끔하게 작성할 수 있으며, 이는 이후에 설명하도록 하겠습니다.
후기 원래 null 값은 컬럼명 !='Text' 로 비교가 안된다 sql 에서 null != 텍스트 true 가 아님
출처 : https://ttl-blog.tistory.com/214#comment9196475
'꿀팁 활용' 카테고리의 다른 글
스프링 시큐리티(Spring Security) 커스텀 폼으로 제이쿼리div로 로그인 정보 전송하기 + 제이쿼리(jQuery) (0) | 2022.10.07 |
---|---|
[ipTIME]아이피 타임 포트 포워딩 설정으로 외부에서 실행중 프로젝트 집에있는 서버 접속하기 (0) | 2022.09.29 |
[Java] ArrayList 순서바꾸기 (0) | 2022.07.29 |
Local History Revert 히스토리 되돌리기 깃허브 커밋전 롤백 되돌리기 (0) | 2022.07.24 |
자바 DateTimeFormatt 데이트 포맷 만들어 놓고 쓰기 (0) | 2022.07.12 |