Postgresql 9.4.5 jOOQ 3.7.2 Dialekt auf POSTGRES_9_4jOOQ Aggregationsfunktionen in postgresql
Ich versuche jOOQ zu verwenden, um dieses nativen postgresql Aggregatausdruck zu wickeln ersetzen:
array_agg(row_to_json(foo) order by "foo"."name" asc) filter (where "attribute".name is not null)
der jOOQ DSL sieht aus wie es Arbeit mit diesem Code sein sollte:
arrayAgg(rowToJson(FOO)).orderBy(FOO.NAME).filterWhere(FOO.NAME.isNotNull()))
Wo rowToJson ein Wrapper für die Postgres-Funktion ist. Die SQL dies macht, ist dies:
array_agg(row_to_json(foo) order by "foo"."name" asc)
Derzeit um es dies mit arbeite ich:
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);
}
Die Frage ist, ist der erste Code zu arbeiten, zu verstehen? Wenn nicht, was ist der richtige Weg, um diese Aggregatfunktion in jOOQ zu generieren?