diff --git a/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java b/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java index 707c2cef9f..e3b3b415af 100644 --- a/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java +++ b/jOOQ-meta/src/main/java/org/jooq/util/AbstractDatabase.java @@ -893,23 +893,33 @@ public abstract class AbstractDatabase implements Database { if (StringUtils.isBlank(type.getName())) { if (StringUtils.isBlank(type.getUserType())) { - StringWriter writer = new StringWriter(); - JAXB.marshal(type, writer); - log.warn("Bad configuration for . Either or is required: " + writer.toString()); + log.warn("Bad configuration for . Either or is required: " + toString(type)); it2.remove(); continue; } if (StringUtils.isBlank(type.getBinding()) && StringUtils.isBlank(type.getConverter())) { - StringWriter writer = new StringWriter(); - JAXB.marshal(type, writer); - log.warn("Bad configuration for . Either or is required: " + writer); + log.warn("Bad configuration for . Either or is required: " + toString(type)); it2.remove(); continue; } } + else { + if (!StringUtils.isBlank(type.getUserType())) { + log.warn("Bad configuration for . is not allowed when is provided: " + toString(type)); + type.setUserType(null); + } + if (!StringUtils.isBlank(type.getBinding())) { + log.warn("Bad configuration for . is not allowed when is provided: " + toString(type)); + type.setBinding(null); + } + if (!StringUtils.isBlank(type.getConverter())) { + log.warn("Bad configuration for . is not allowed when is provided: " + toString(type)); + type.setConverter(null); + } + } if (type.getUserType() != null && StringUtils.equals(type.getUserType(), typeName)) { return customType(this, type); @@ -919,6 +929,12 @@ public abstract class AbstractDatabase implements Database { return null; } + private final String toString(ForcedType type) { + StringWriter writer = new StringWriter(); + JAXB.marshal(type, writer); + return writer.toString(); + } + @Override public final void setConfiguredForcedTypes(List configuredForcedTypes) { this.configuredForcedTypes = configuredForcedTypes;