JPQL join

방세현·2024년 2월 26일
0

프로젝트

목록 보기
4/4

게시판 검색 기능 구현중에 어떤 단어를 검색하면 그 단어를 포함한 사용자들을 찾아서 그 사용자들의 게시물을 가져오는 기능을 구현하게 되었다.

처음에 짤때에는 사용자 엔티티를 조회하는 쿼리 구문과 그 사용자 엔티티와 매핑되어있는 게시물 리스트를 받아서 가져오는 쿼리 구문으로 짜보았다. 다른 Repository에 쿼리를 두번 날리는것은 비효율적이라 생각하여 두 엔티티의 연관관계를 원래 설정된 단방향에서 양방향으로 바꾸고 UserCareService(게시물)에서 userEntity(사용자명 보관 엔티티)로 호출하며 쿼리문을 짜보았다.

Repository

@Query("SELECT care FROM UserCareService care " +
            "JOIN care.userEntity user " +
            "WHERE user.username LIKE %:keyword%")
    Page<UserCareService> findByUsernameInUserCareService(@Param("keyword") String keyword, Pageable pageable);

0개의 댓글