개요
검색 조건 쿼리
@Test
void search() {
//given
QMember member = QMember.member;
//when
Member findMember = jpaQueryFactory
.selectFrom(member)
.where(member.userName.eq("member1")
.and(member.age.between(10, 30)))
.fetchOne();
//then
assertThat(findMember.getUserName()).isEqualTo("member1");
}
- 검색 조건은
.and(), .or() 를 메서드 체인으로 연결할 수 있다.
.and() 는 파라미터로 처리할 수 있다.
- **콤마(,)**로 구분하여 사용할 수 있다.
- null 값이 들어온 경우 무시한다.
select(), from() 을 selectFrom() 으로 합칠 수 있다.
JPQL이 제공하는 모든 검색 조건 제공
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%’ 검색