-
[Spring] querydsl - 검색 조건 쿼리Spring 2022. 1. 3. 00:53
검색 조건은 기본적으로 .and 와 .or을 이용해 메소드 체인으로 연결할 수 있다.
그밖에 많은 기능들이 제공된다.
member.username.eq("member1") // username = 'member1' member.username.ne("member1") //username != 'member1' member.username.eq("member1").not() // username != 'member1' member.username.isNotNull() //이름이 is not null member.age.in(10, 20) // age in (10,20) member.age.notIn(10, 20) // age not in (10, 20) member.age.between(10,30) //between 10, 30 member.age.goe(30) // age >= 30 member.age.gt(30) // age > 30 member.age.loe(30) // age <= 30 member.age.lt(30) // age < 30 member.username.like("member%") //like 검색 member.username.contains("member") // like ‘%member%’ 검색 member.username.startsWith("member") //like ‘member%’ 검색
and 조건을 파라미터로 처리
@Test public void searchAndParam() { List<Member> result1 = queryFactory .selectFrom(member) .where(member.username.eq("member1"), member.age.eq(10)) .fetch(); assertThat(result1.size()).isEqualTo(1); }
where()에 파라미터로 검색조건을 추가하면 and조건이 추가됨 (parameter가 ...로 되있기 때문)
이 경우 null 값은 무시 -> 메소드 추출을 활용해서 동적 쿼리를 깔끔하게 만들 수 있음
'Spring' 카테고리의 다른 글
[Spring] querydsl - 정렬 (0) 2022.01.03 [Spring] querydsl - 결과 조회 (0) 2022.01.03 [Spring] JPAQueryFactory를 필드로 선언하면 어떻게 될까? (0) 2022.01.03 [Spring] 새로운 엔티티를 구별하는 방법 (0) 2022.01.01 [Spring] 한 페이지에 페이징 정보가 둘 이상일 경우 (0) 2021.12.31