我有一个JSON列,其中包含这样的JSON数组:
[{"type":"NAME","values":[{"value":"123456", "locale":"en"}]}]
我需要按类型= NAME和类似%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内容吗?