[JPA] JPA @Query에서 list null인지 확인

하스레·2022년 8월 10일
0

SearchOptions에 리스트 타입의 companyIds가 있는데, 프런트에서 요청을 보내올때 해당 리스트가 null인지 확인하는 작업이 필요했다.

따라서 SearchOptions 객체에 getCompanyIdsSize함수를 추가했다.
companyIds가 null이거나 empty이면 size를 0으로 반환한다.

@Data
public class SearchOptions {
    private List<Long> companyIds;   
    
    ...
    
    public int getCompanyIdsSize() {
        return companyIds == null || CollectionUtils.isEmpty(companyIds)
                ? 0 : companyIds.size();
    }
}

그리고 jpa repository에선 다음과 같이 쿼리문을 작성했다.

@Query(value = "select t from Theme t where (:#{#options.companyIdsSize} = 0 or t.cafe.company.id in :#{#options.companyIds}) " )
    Page<Theme> findThemesByOptions(@Param("options") SearchOptions options, Pageable pageable);

https://stackoverflow.com/questions/54026900/check-that-a-list-parameter-is-null-in-a-spring-data-jpa-query

profile
Software Developer

0개의 댓글