Как сформулировать аннотацию запроса в репозитории данных Spring для чтения данных JSON? - PullRequest
0 голосов
/ 19 октября 2018

Я борюсь с формулировкой аннотации Query в репозитории данных Spring для следующего сценария.

В целевой таблице есть столбец с именем Role, который имеет тип данных CLOB, и он будет содержать один илибольше значений в json.

{
    "role" : ["Foo","Bar","Boo"]
}

У меня есть такой репозиторий, который возвращает объект RoleInfo на основе входного параметра, так что если input равен Foo, то он совпадает и должен возвращать ожидаемый объект / запись.

RoleInfo findRoleInfo(String role)

Я столкнулся с очень простой операцией crud, в которой role будет иметь одно значение в тексте.Следующий пример будет работать, если столбец Roles содержит одно значение Foo в тексте, но я не уверен, что приведенный ниже синтаксис правильный.Я мог бы попробовать, какие выходные данные или исключения были бы выданы, но тестирование - это довольно дорогая операция в магазине, где я работаю.Прежде чем выполнить тест во время выполнения, я хочу иметь представление о правильном синтаксисе.Буду признателен за ваш совет / комментарий.

@Query("from RoleInfo where role=?1")

Обновление:

После проведенного дня или двух вопрос, который я задал, стал понятен.Мои извинения, если мой первоначальный вопрос был расплывчатым.Ответ был найден чтением из следующей ветки.

Мне нужно было использовать предложение like в JPQL.Поскольку программа, с которой я имею дело, использует предыдущую версию данных Spring jpa 1.3.1, я не могу напрямую вставить % в JPQL, вместо этого мне пришлось добавить ее в аргумент функции вызывающей стороны.

ТакжеЯ изменил тип данных с CLOB на varchar2 для столбца с именем Role.Я получаю ORA-00932 inconsistent data types ошибку при чтении данных из.Роль могла иметь длинный список символов, но наличие трех строковых значений в CLOB вызвало сомнение в моем выборе типа данных.Максимальная длина символа может быть 4000 байтов для varchar2 типа данных, как многие из вас знают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...