diff --git a/jOOQ/src/main/java/org/jooq/DataType.java b/jOOQ/src/main/java/org/jooq/DataType.java index a437aaf1ee..5876d0b598 100644 --- a/jOOQ/src/main/java/org/jooq/DataType.java +++ b/jOOQ/src/main/java/org/jooq/DataType.java @@ -192,6 +192,8 @@ public interface DataType extends Serializable { /** * Return a new data type like this, with a new nullability. + *

+ * [#5709] A nullable column cannot have an {@link #identity()}. * * @param nullable The new nullability * @return The new data type @@ -207,6 +209,9 @@ public interface DataType extends Serializable { /** * Return a new data type like this, with a new identity flag. + *

+ * [#5709] The IDENTITY flag imposes a NOT NULL constraint, and removes all + * DEFAULT values. * * @param identity The new identity flag * @return The new data type @@ -223,6 +228,8 @@ public interface DataType extends Serializable { /** * Specify an expression to be applied as the DEFAULT value for * this data type. + *

+ * [#5709] A defaulted column cannot have an {@link #identity()}. * * @see #defaultValue(Field) */ diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java b/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java index 6b7b138833..4ba2957d83 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultDataType.java @@ -363,7 +363,7 @@ public class DefaultDataType implements DataType { @Override public final DataType nullable(boolean n) { - return new DefaultDataType(this, precision, scale, length, n, identity, defaultValue); + return new DefaultDataType(this, precision, scale, length, n, n ? false : identity, defaultValue); } @Override @@ -373,7 +373,7 @@ public class DefaultDataType implements DataType { @Override public final DataType identity(boolean i) { - return new DefaultDataType(this, precision, scale, length, nullable, i, defaultValue); + return new DefaultDataType(this, precision, scale, length, i ? false : nullable, i, i ? null : defaultValue); } @Override @@ -388,7 +388,7 @@ public class DefaultDataType implements DataType { @Override public final DataType defaultValue(Field d) { - return new DefaultDataType(this, precision, scale, length, nullable, identity, d); + return new DefaultDataType(this, precision, scale, length, nullable, d != null ? false : identity, d); } @Override