jOOQ

2016-04-18 5 views
1
とPostgreSQLでARRAYにSQLクエリを変換

のは、私はタイプのクエリがあるとしましょう:jOOQ

SELECT * FROM users WHERE access_codes @> 
    ARRAY[(SELECT access_code FROM provisional_access)]; 

私はjooqでこれを書くだろうか?これは現在、箱から出してjOOQでサポートされていない

ctx.selectFrom(Tables.USERS).where(Tables.USERS.ACCESS_CODES).contains(
    ?? ctx.select(Tables.PROVISIONAL_ACCESS.ACCESS_CODE).from(Tables.PROVISIONAL_ACCESS) ?? 
); 

答えて

1

、しかし、あなたは非常に簡単に"plain SQL"を使用して、ユーティリティ機能を実装することができます:私がこれまで行ってきた最高です

public static <T> Condition arrayContains(
    Field<T[]> left, Select<? extends Record1<T>> right 
) { 
    return DSL.condition("{0} @> ARRAY[({1})]", left, right); 
}