JOOQ PostgreSQL访问数组的单个元素

时间:2018-07-24 01:58:00

标签: postgresql jooq

要在PostgreSQL查询中获取单个元素,我们可以做类似的事情

SELECT pay_by_quarter[3] FROM sal_emp;

或在有条件的情况下

SELECT * FROM sal_emp WHERE pay_by_quarter[1] = 10000

如果可能的话,如何在JOOQ中实现相同的目标。

谢谢!

1 个答案:

答案 0 :(得分:1)

有一个待处理的功能请求,允许通过jOOQ API通过索引引用数组元素:https://github.com/jOOQ/jOOQ/issues/229

解决方法是使用plain SQL templating

public static <T> Field<T> get(Field<T[]> field, int index) {
    return (Field) DSL.field(
        "{0}[{1}]", 
        field.getDataType().getType().getComponentType(), 
        val(index)
    );
}