Spring jpa позиционный параметр собственного запроса не работает внутри функций json - PullRequest
0 голосов
/ 28 января 2019

Я разрабатываю REST-приложение, используя Spring Boot и MariaDB в качестве хранилища данных.Я выбрал весенние данные jpa для связи с хранилищем данных.В моем хранилище данных есть 1 таблица, в которой есть 2 столбцаРезультирующий набор, когда выполнить его через приложение, но получить, когда я запустил запрос в редакторе ДБ Мария Мария.параметр поиска для функции json предоставляется как позиционный параметр, который он не обнаруживает

Мой класс сущности выглядит следующим образом:

@Entity 
public class Data{
private String id;
private String jsonVal;
....

Хранилище данных Spring работает, как показано ниже,

@Repository
public interface DataRepo extends JpaRepository<Data, String>{

@Query("select * from data where json_contains(jsonval, '{\"nm\"}':?1)", nativeQuery=true)
public Data findByName(String name);
}

Строки в базе данных имеют следующие значения

1st row -> "fdsgs-12232-sdsdf"    {"personid":"100", "nm":"XXX", "age":"13"}
2nd row -> "sdfsd-88345-sdfse"    {"personid":"101", "nm":"YYY", "age":"14"}

Метод тестирования: 1) Когда я вызываю метод репозитория "findByName", передавая "XXX", яне получить строку обратно в наборе результатов.Когда я пытаюсь выполнить тот же запрос в heidisql, я получаю 1-ю строку в качестве результата.Я посмотрел на следующую ссылку stackoverflow, относящуюся к той же самой проблеме и точно следую, но не повезло.

ссылка stackoverflow имеет дело с аналогичной проблемой

2) Когдапротестировано со следующим комбо, я могу получить результат, чтобы убедиться, что позиционные параметры как таковые работают в моем случае,

@Query("select * from data where id=?1)", nativeQuery=true)
public Data findByName(String id);
}

Я не знаю, какая конфигурация здесь отсутствует.Последние 2 дня я застрял в этой проблеме, и никаких дополнительных исключений в журналах я добавил к своему беспокойству.

...