diff --git a/jOOQ/src/main/java/org/jooq/DataType.java b/jOOQ/src/main/java/org/jooq/DataType.java index 9021cd4497..38b91db29a 100644 --- a/jOOQ/src/main/java/org/jooq/DataType.java +++ b/jOOQ/src/main/java/org/jooq/DataType.java @@ -69,6 +69,11 @@ public interface DataType extends Serializable { */ int getSQLType(); + /** + * Get the dialect-specific JDBC {@link Types} value. + */ + int getSQLType(Configuration configuration); + /** * Get the data type binding associated with this data type. */ diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java b/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java index b9ce2e452b..b6e3fec786 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java @@ -517,6 +517,11 @@ public class DefaultDataType implements DataType { @Override public /* final */ int getSQLType() { + return getSQLType(DSL.using(dialect).configuration()); + } + + @Override + public final int getSQLType(Configuration configuration) { // TODO [#1227] There is some confusion with these types, especially // when it comes to byte[] which can be mapped to BLOB, BINARY, VARBINARY @@ -578,6 +583,15 @@ public class DefaultDataType implements DataType { + + + + + + + + + else if (EnumType.class.isAssignableFrom(type)) { return Types.VARCHAR; } @@ -585,7 +599,7 @@ public class DefaultDataType implements DataType { return Types.STRUCT; } else if (Result.class.isAssignableFrom(type)) { - switch (dialect.family()) { + switch (configuration.family()) {