Я столкнулся с проблемой, когда я хочу, чтобы несколько результатов отображались с использованием одного запроса, а не нескольких запросов.
Допустим, таблица содержит 50 записей и 3 столбца, может потребоваться не один столбец, может быть , Когда пользователь сохраняет нулевое значение, Query1 возвращает 30 записей, когда пользователь придает ему какое-либо значение. Query2 возвращает 15 записей. Можно ли этого достичь, используя только один запрос?
Контроллер:
public Iterable<Number> getNumberRecords(@PathVariable String one, @PathVariable String two,
@RequestParam(value = "three", required = false) String three) {
if(three == null)
return numberRepository.findAllbyOneAndTwo(one,two);
else
return numberRepository.findAllbyOneAndTwoAndThree(one,two,three);
}
Репозиторий:
@Repository
public interface NumberRepository extends CrudRepository<Number, Long>{
List<Number> findAllbyOneAndTwoAndThree(String one, String two, String three);
List<Number> findAllbyOneAndTwo(String one, String two);
}
Мне нужен только один запрос, который будет удовлетворять и давать ожидаемый результат в оба случая. Условный запрос с использованием @ Query ("") также подойдет.