• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

Querydsl Where문에서 .and .or 질문입니다

22.12.09 14:50 작성 조회수 224

0

.where(post.category.eq(categoryReceived)
        .and(post.title.contains(searchReceived))
        .or(post.content.contains(searchReceived))
)

지금 구현한 코드 일부 입니다.

제가 원하는것은
where 문 안에

category.eq(~).and(title.contains(~)) 이거나

category.eq.and(content.contains(~)) 일때

db에서 긁어 오는것을 구현 하고 싶습니다.

 

그런데, 막상 해보니 or 안에 들어있는 조건만 충족해도 긁어오더라구요.

질문
1. 이러한 경우에 코드를 어떻게 작성하면 효율적으로 구현이 될까요?..

  1. where문 안에 ,(콤마)가 and 조건이라고 하는데 콤마 말고 or 조건을 나타내는 기호가 있을까요?

답변 1

답변을 작성해보세요.

0

y2gcoder님의 프로필

y2gcoder

2022.12.09

안녕하세요. S-J L님, 공식 서포터즈 y2gcoder입니다.

지금 구현한 코드를 보면 or조건이 바깥에 있기 때문에 말씀하신대로 작동하는 게 맞습니다.

말씀하신 것으로 조건을 생각해봤을 때,

  1. 카테고리가 같고,

  2. 제목이나 내용에 해당 검색어가 들어가 있을 때

 

로 보입니다.

.where(
    post.category.eq(categoryReceived),
    post.title.contains(searchReceived).or(post.content.contains(searchReceived))
)

 

이런 식으로 구현하면 원하시는대로 나오지 않을까 싶습니다.


감사합니다.