【问题标题】:How do you add jsonb functions in FROM subqueries using JOOQ如何使用 JOOQ 在 FROM 子查询中添加 jsonb 函数
【发布时间】:2019-12-27 05:19:24
【问题描述】:

如何使用 jooq 构建此查询?

select et.id 
from t, et, 
    jsonb_array_elements(t.keys_and_values) as s, jsonb_object_keys(s) as s1
where et.id = t.id
and s1 = 'key'

【问题讨论】:

    标签: java jooq


    【解决方案1】:

    当您缺少对供应商特定 SQL 功能的 API 支持时,您可以求助于使用 plain SQL templating API。 IE。写

    Table<?> s = DSL.table("jsonb_array_elements({0})", T.KEYS_AND_VALUES).as("s");
    Table<?> s1 = DSL.table("jsonb_object_keys({0})", s).as("s1");
    

    然后,为了形成一个谓词,你可以这样写:

    DSL.condition("{0} = {1}", s1, DSL.val("key"));
    

    还有许多其他方法,都使用纯 SQL 模板 API,具体取决于您希望重用某些供应商特定函数表达式等的程度。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-29
      • 1970-01-01
      • 2020-11-20
      • 1970-01-01
      • 2019-03-24
      • 1970-01-01
      • 2017-09-27
      相关资源
      最近更新 更多