diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java index 15847e718f..f298818145 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java @@ -9192,9 +9192,9 @@ public class JavaGenerator extends AbstractGenerator { // [#252] This check prevents StackOverflowError in case of e.g. PostgreSQL ANYARRAY types if (base != type) - return getJavaTypeReference(db, base, out) + ".getArrayDataType()"; + return getJavaTypeReference(db, base, out) + ".array()"; else - return getJavaTypeReference0(db, type, out) + ".getArrayDataType()"; + return getJavaTypeReference0(db, type, out) + ".array()"; } else diff --git a/jOOQ/src/main/java/org/jooq/DataType.java b/jOOQ/src/main/java/org/jooq/DataType.java index 35b69a98d4..4fb7e8a1cc 100644 --- a/jOOQ/src/main/java/org/jooq/DataType.java +++ b/jOOQ/src/main/java/org/jooq/DataType.java @@ -202,6 +202,13 @@ public interface DataType extends Named { @NotNull DataType getArrayDataType() throws DataTypeException; + /** + * A convenient short for form {@link #getArrayDataType()} for DSL usage + */ + @NotNull + @Support({ H2, HSQLDB, POSTGRES, YUGABYTEDB }) + DataType array() throws DataTypeException; + /** * Retrieve the Java component type if this is an ARRAY type, or * null, otherwise. diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java b/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java index 0110763d59..fd4da87c02 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java @@ -109,6 +109,7 @@ import org.jooq.Schema; import org.jooq.ContextConverter; import org.jooq.Table; import org.jooq.XML; +import org.jooq.exception.DataTypeException; import org.jooq.impl.QOM.GenerationLocation; import org.jooq.impl.QOM.GenerationOption; import org.jooq.impl.QOM.UEmpty; @@ -659,6 +660,11 @@ implements return new ArrayDataType<>(this); } + @Override + public final DataType array() { + return getArrayDataType(); + } + @Override public /* non-final */ Class getArrayComponentType() { return null;