티스토리 뷰

QueryDSL 문법들은 직관적이기 때문에 해석하기 쉬울 것이다. 그럼 한번 알아보자. 

 

제목이 테스트인 게시글들 조회 쿼리

public List<Board> findByTitle_Querydsl() {
        return query
                .selectFrom(board)
                .where(board.title.eq("테스트"))
                .fetch();
    }
  • selectFrom : select와 from하는 엔티티가 같으면 selectFrom으로 합칠 수 있다. 
  • board.title.eq : 해석 그대로 게시글의 제목이 equals, 즉 테스트와 같다면 이다.
  • fetch : 데이터가 없으면 빈 값을, 있다면 리스트 조회

 

제목으로 검색하는 쿼리

public List<Board> findByTitle_Querydsl(String title) {
        return query
                .selectFrom(board)
                .where(board.title.contains(title))
                .fetch();
    }
  • contains : like문법에서의 "%title%" 라고 생각하면 된다. 

 

제목과 게시글의 작성자의 닉네임으로 검색하는 쿼리

    public List<Board> findByTitle_Querydsl(String keyword) {
        return query
                .selectFrom(board)
                .where(board.title.contains(keyword).or(board.writer.nickname.eq(keyword)))
                .fetch();
    }
  • or : 또는 이다. 검색 키워드가 게시글의 제목 또는 게시글을 작성한 작성자의 닉네임으로 해석할 수 있다. 

게시글의 제목은 짧을 수 도 있고 길 수 도 있다. 즉 게시글은 기억하기가 쉽지 않고 검색할 때 정확하게 쓰지 않아도 관련된 게시글들이 조회될 수 있게 검색한 키워드를 포함할 수 있도록 contains를 하였고, 작성자는 정확하게 검색하도록 하였다. 그럼 한번 실행해보자. 

 

전체조회

 

제목이 와우를 포함한 게시글들 조회

 

닉네임이 nam인 작성자가 쓴 게시글들 조회

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday