diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java
index 5f0952bf1c..a450f71084 100644
--- a/jOOQ/src/main/java/org/jooq/impl/DSL.java
+++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java
@@ -14032,10 +14032,46 @@ public class DSL {
@NotNull
@Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB })
public static Domain> domain(Name name) {
+ return domain(name, SQLDataType.OTHER);
+ }
+
+ /**
+ * Create a DOMAIN reference.
+ */
+ @NotNull
+ @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB })
+ public static Domain domain(String name, Class type) {
+ return domain(name(name), getDataType(type));
+ }
+
+ /**
+ * Create a DOMAIN reference.
+ */
+ @NotNull
+ @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB })
+ public static Domain domain(Name name, Class type) {
+ return domain(name, getDataType(type));
+ }
+
+ /**
+ * Create a DOMAIN reference.
+ */
+ @NotNull
+ @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB })
+ public static Domain domain(String name, DataType type) {
+ return domain(name(name), type);
+ }
+
+ /**
+ * Create a DOMAIN reference.
+ */
+ @NotNull
+ @Support({ FIREBIRD, H2, HSQLDB, POSTGRES, YUGABYTEDB })
+ public static Domain domain(Name name, DataType type) {
return new DomainImpl<>(
name.qualified() ? schema(name.qualifier()) : null,
name.unqualifiedName(),
- new DefaultDataType<>(null, Object.class, name)
+ new DefaultDataType<>(null, type.getSQLDataType(), name)
);
}
diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java b/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java
index 873b8b6e5e..c7ac52a8e8 100644
--- a/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java
+++ b/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java
@@ -323,6 +323,10 @@ public class DefaultDataType extends AbstractDataTypeX {
this(dialect, null, type, qualifiedTypeName, null, null, null, null, null, Nullability.DEFAULT, null);
}
+ DefaultDataType(SQLDialect dialect, DataType type, Name qualifiedTypeName) {
+ this(dialect, type, type.getType(), qualifiedTypeName, null, null, null, null, null, Nullability.DEFAULT, null);
+ }
+
DefaultDataType(SQLDialect dialect, Class type, Binding, T> binding, Name qualifiedTypeName, String typeName, String castTypeName, Integer precision, Integer scale, Integer length, Nullability nullability, Field defaultValue) {
this(dialect, null, type, binding, qualifiedTypeName, typeName, castTypeName, precision, scale, length, nullability, defaultValue);
}