[英]How to use 'ANY' function with JOOQ
我目前使用 JOOQ 從 postgresql DB 獲取數據。 然后我遇到了獲取數據類型為數組類型的數據的問題。
目前情況如下:
表架構是:
CREATE TABLE favorites (
id int,
items varchar(100)[]
);
樣本數據是:
INSERT INTO favorites (id, items)
VALUES (1, '{orange, lemon, banana}');
INSERT INTO favorites (id, items)
VALUES (2, '{apple, grape}');
要獲取第一個數據,SQL 就像:
SELECT id, items FROM favorites WHERE 'orange' = ANY (items);
但是,我無法使用 JOOQ 像上面那樣創建 sql。
Connection connection = ...;
DSLContext context = DSL.using(connection, ...);
List<Table> table = context.select().from(TABLE).fetchInto(class.TABLE);
我可以在 JOOQ 中使用任何功能嗎? 如果可能,我如何使用 JOOQ 創建它。 如果沒有,還有其他方法可以用 JOOQ 獲得相同的結果嗎?
先感謝您。
像這樣做:
List<TableRecord> table = context
.selectFrom(TABLE)
.where(val("orange").eq(any(TABLE.ITEMS)))
.fetch();
上面的查詢使用DSL.any(Field<T[]>)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.