У меня есть более сложный вопрос, касающийся возможного подхода к использованию Spring Data JPA, со спецификациями, функциями JSONB и боковым соединением postgresql.
Слишком упрощенная версия такого запроса может быть найдена здесь:
ключи набора записей PostgreSQL JSON по строкам
select id, sum(a), sum(b)
from jsontable j
CROSS JOIN LATERAL
json_to_recordset(j.data) as x(a integer, b integer)
group by id
До сих пор мы работали с собственными запросами с вышеупомянутыми функциями, и у нас не было проблем. Мы также использовали Спецификационный API для фильтрации дополнительных (обнуляемых) фильтров запросов без каких-либо проблем. Тем не менее, мы достигли точки, где мы хотели бы объединить эти два. AFAIK, большинство функций не работают с нативными запросами, поэтому нам нужно преобразовать нативный запрос в JPQL. Однако использование таких новых функций в JPQL представляется невозможным. Конечно, мы могли бы использовать спецификации для простых операций JSONB ( Как мне использовать пружинные данные jpa для запроса столбца jsonb? ), но использовать его в предложении соединения не представляется возможным.
Использование каких-либо альтернатив не исключено (например, я немного исследовал queryDSL, хотя это тоже казалось тупиком), поэтому не стесняйтесь предлагать их.
TL; DR: мы хотели бы объединить спецификации Spring из данных JPA Spring (или эквивалентные) с запросом postgresql с использованием JSONB и боковых объединений.