1
我試圖將我編寫和測試的查詢從命令行轉換爲使用jOOq的DSLContext查詢並遇到問題。下面的查詢旨在從具有JSONB列「tags」的表「campaign」中返回一個匹配類似參數的標記與通配符列表。本欄以下列方式格式化值:將PostgreSQL查詢轉換爲DSLContext
[「狗」,「貓」,「小白兔」]
select distinct A.value
from campaign T, LATERAL jsonb_array_elements_text(T.tags) A
where A.value LIKE 't%'
我試圖通過以下方式來創造這一個DSLContext但我得到錯誤「ERROR:AND的參數不能返回一個集合」。任何人都可以看到我能做些什麼來解決這個問題,並從我的PostgreSQL查詢和我的DSL查詢下面產生相同的結果?
final Field<String> tagField = field("jsonb_array_elements_text(tags)", String.class);
final Table<Record1<String>> lateral =
lateral(sql.dsl().select(a).from(CAMPAIGN)).asTable();
final Result<Record1<String>> tag = sql.dsl()
.select(tagField)
.from(CAMPAIGN, lateral)
.where(tagField.like("t"))
.fetch();
謝謝!它看起來像那樣。你是救生員 – thurmc