PostGreSQL 9.4.5 jOOQ 3.7.2 говор установлен POSTGRES_9_4агрегатных jOOQ функции в PostgreSQL
Я пытаюсь использовать jOOQ завернуть заменить этот родной PostGreSQL агрегатное выражение:
array_agg(row_to_json(foo) order by "foo"."name" asc) filter (where "attribute".name is not null)
JOOQ DSL выглядит так, как будто он должен работать с использованием этого кода:
arrayAgg(rowToJson(FOO)).orderBy(FOO.NAME).filterWhere(FOO.NAME.isNotNull()))
Если rowToJson является оберткой для функции postgres. SQL это делает это:
array_agg(row_to_json(foo) order by "foo"."name" asc)
В настоящее время я работаю вокруг него с этим:
public static <T> Field<T[]> arrayAgg(Field<T> field, final SortField<?> sort, final Condition filter) {
return field("array_agg({0} order by {1}) filter (where {2})", field.getDataType().getArrayDataType(), field, sort, filter);
}
вопрос, является первым код предназначен для работы? Если нет, то каков правильный способ генерации этой агрегатной функции в jOOQ?