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;