Для класса ниже, где я добавляю дополнительные методы поиска в хранилище, как мне сделать параметры поиска необязательными в методе findByFields? Этот метод имеет только два параметра, но рассмотрим сценарий с гораздо более широкими возможностями.
Примером сценария является страница формы поиска, где может быть от 10 до 20 фильтров поиска. Пользователь может использовать любую комбинацию 0 для всех параметров поиска.
Есть ли способ сделать поля необязательными в том смысле, что если задано нулевое значение, то это поле не будет добавлено в качестве фильтра запроса?
Я знаю, что я мог бы добавить logi c внутри метода, чтобы сказать, если paramA и paramB имеют значения, затем вызвать метод для этой комбинации и вызвать другой метод для другой комбинации, но это было бы ужасным решением в Мое мнение.
Есть предложения? Было бы неплохо сделать это без добавления оператора запроса вручную.
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import java.util.List;
public interface ReportMappingRepository extends CrudRepository<ReportMapping, Integer> {
public ReportMapping findReportMappingByReportId(@Param("reportID") int reportId);
public List<ReportMapping> findByFields(@Param("id")int id, @Param("reportID") int reportId);
}