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);