Jooq jsonb_array_elements 等效

问题描述 投票:0回答:1

我正在寻找jooq中的函数来使用postgres的

jsonb_array_elements
函数。我正在尝试将此查询转换为 jooq:

select
  s.id as shipment_id,
  so.id as sales_order_id,
  s_item -> 'productId' as product_id,
  s_item -> 'sub_items' as sub_items
from shipment s
  join sales_order so
    on s.sales_order_id = so.id,
  jsonb_array_elements(s.items) AS s_item
where s.status = 'READY'

我查看了 jooq 文档的 json 函数部分,但没有找到它。

在 jooq 中是否有解决方法或不同的表达方式

jsonb_array_elements

postgresql jooq
1个回答
0
投票

jOOQ尚不支持此功能。您可以使用:

  • JSON_TABLE
    。这是一个 SQL 标准,PostgreSQL 15 尚未支持,但可能很快就会支持。它的工作原理几乎就像你的函数一样。 jOOQ 使用
    jsonb_path_query_first
  • 来模拟它
  • 纯 SQL 模板

在后一种情况下,只需使用:

Table<?> table = DSL.table("jsonb_array_elements({0})", s.ITEMS);
© www.soinside.com 2019 - 2024. All rights reserved.