Spring data JPA + postgresql LATERAL JOIN + JSONB + Характеристики / альтернатива - PullRequest
0 голосов
/ 25 марта 2019

У меня есть более сложный вопрос, касающийся возможного подхода к использованию 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 и боковых объединений.

...