Spring数据JPA + PostgreSQL LATERAL JOIN + JSONB +规范/替代

时间:2019-03-25 15:49:41

标签: spring-data-jpa postgresql-11 lateral-join

关于使用Spring Data JPA的可能方法,规范,postgresql的JSONB和横向联接功能,我还有一个更高级的问题。

可以在以下位置找到此类查询的过度简化版本: PostgreSQL aggregate JSON recordset keys by row

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中使用这些新功能。当然,我们可以将Specification用于简单的JSONB操作(How do I use spring data jpa to query jsonb column?),但似乎无法在join子句中使用它。

使用任何替代方案都不是不可能的事情(例如,我对queryDSL进行了一些研究,尽管这似乎也是一个死胡同),所以随时提出它们。

TL; DR:我们希望将Spring数据JPA(或等效版本)中的Spring规范与使用JSONB和横向联接的PostgreSQL查询结合起来。

0 个答案:

没有答案