Несколько параметров запроса в Spring Data JPA

Что я делаю неправильно?

Репозиторий:

@Query(value = "SELECT * FROM agenda WHERE substring(data,1,10) IN (:data0,:data1)", nativeQuery = true)
List<AgendaModel> find(String data0,String data1);

Контроллер:

@RequestMapping(value = "/agenda/clone/{data0}/{data1}", method=RequestMethod.GET)
public @ResponseBody List<AgendaModel> clone(@PathVariable String data0, String data1){
    return actions.find(data0,data1);
}

Это работает, но пришлите мне только первый результат данных. Например, если я попытаюсь использовать «/agenda/clone/2022-11-24/2022-11-25», я получу значения от 2022-11-24 и никаких значений от 2022-11-25.

Что выполняется в базе данных, и как вы уверены, что должны получить результаты для этого второго параметра? Включите ведение журнала SQL и, возможно, покажите, что возвращает запрос, если вы сами запустите его в базе данных.

Chris 24.11.2022 19:38

В MySQL работает нормально, чего мне не хватало, так это @PathVariable. Спасибо

Luis Rotoly 25.11.2022 12:38

У вас есть ответ, но в следующий раз SQL (с ведением журнала параметров) покажет вам, что он вводит null вместо значения вашего пути.

Chris 25.11.2022 16:25
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
1
3
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я вижу, что аннотация @PathVariable отсутствует для data1. Пожалуйста, напишите такой метод и попробуйте еще раз.


@RequestMapping(value = "/agenda/clone/{data0}/{data1}", method=RequestMethod.GET)
public @ResponseBody List<AgendaModel> clone(@PathVariable String data0, @PathVariable String data1){
    return actions.find(data0,data1);
}

Спасибо, не видел!

Luis Rotoly 25.11.2022 12:37

Другие вопросы по теме