【发布时间】: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'
【问题讨论】:
如何使用 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'
【问题讨论】:
当您缺少对供应商特定 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,具体取决于您希望重用某些供应商特定函数表达式等的程度。
【讨论】: