簡體   English   中英

如何在 JOOQ 中使用“ANY”功能

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM