使用 jOOQ 将 SQL 查询转换为 PostgreSQL 中的数组
Converting a SQL query to an ARRAY in PostgreSQL with jOOQ
假设我有一个查询类型:
SELECT * FROM users WHERE access_codes @>
ARRAY[(SELECT access_code FROM provisional_access)];
我如何在 jooq 中写这个?到目前为止我做的最好的是:
ctx.selectFrom(Tables.USERS).where(Tables.USERS.ACCESS_CODES).contains(
?? ctx.select(Tables.PROVISIONAL_ACCESS.ACCESS_CODE).from(Tables.PROVISIONAL_ACCESS) ??
);
jOOQ 目前不支持开箱即用,但您可以使用 "plain SQL":
轻松实现实用函数
public static <T> Condition arrayContains(
Field<T[]> left, Select<? extends Record1<T>> right
) {
return DSL.condition("{0} @> ARRAY[({1})]", left, right);
}
假设我有一个查询类型:
SELECT * FROM users WHERE access_codes @>
ARRAY[(SELECT access_code FROM provisional_access)];
我如何在 jooq 中写这个?到目前为止我做的最好的是:
ctx.selectFrom(Tables.USERS).where(Tables.USERS.ACCESS_CODES).contains(
?? ctx.select(Tables.PROVISIONAL_ACCESS.ACCESS_CODE).from(Tables.PROVISIONAL_ACCESS) ??
);
jOOQ 目前不支持开箱即用,但您可以使用 "plain SQL":
轻松实现实用函数public static <T> Condition arrayContains(
Field<T[]> left, Select<? extends Record1<T>> right
) {
return DSL.condition("{0} @> ARRAY[({1})]", left, right);
}