У меня есть столбец JSON, который содержит массив JSON, например:
[{"type":"NAME","values":[{"value":"123456", "locale":"en"}]}]
Мне нужно выполнить поиск по типу = ИМЯ и значению, как% 234%.
Мне удалось написать следующий запрос:
SELECT * FROM my_schema.entry
JOIN LATERAL json_array_elements(attributes) AS attr (value)
ON attr.value ->> 'type' = 'NAME'
JOIN LATERAL json_array_elements(attr -> 'values') AS attr_value(value)
ON attr_value ->> 'value' like '%234%';
Проблема в том, что я не понимаю, как я могу использовать его в спецификации Spring Data JPA.
Вот почему у меня была идея скрыть этот запрос внутри функции, чтобы получить что-то вроде этого:
SELECT * FROM my_schema.entry e WHERE entry_name_matches(e, '%234%') IS true;
Есть ли способ как "спрятать" элементы JOIN LITERAL внутри функции?