我们说我有类型的查询:
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) ??
);
答案 0 :(得分:1)
目前jOOQ不支持此功能,但您可以使用"plain SQL"轻松实现实用程序功能:
public static <T> Condition arrayContains(
Field<T[]> left, Select<? extends Record1<T>> right
) {
return DSL.condition("{0} @> ARRAY[({1})]", left, right);
}