From 9bbf43fba6ff56e15367eb8e8348f274e4852503 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Tue, 17 May 2022 16:23:40 +0200 Subject: [PATCH] [jOOQ/jOOQ#13557] MySQL / MariaDB generated columns with enum type are not generated as readonly --- .../java/org/jooq/codegen/JavaGenerator.java | 5 ++++- .../java/org/jooq/impl/AbstractDataType.java | 22 ++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java index 81cde9e57e..8793332280 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java @@ -9618,7 +9618,10 @@ public class JavaGenerator extends AbstractGenerator { } else if (db.getEnum(schema, u) != null) { sb.append(getJavaTypeReference(db, new DefaultDataTypeDefinition( - db, schema, DefaultDataType.getDataType(db.getDialect(), String.class).getTypeName(), l, p, s, n, d, (Name) null + db, + schema, + DefaultDataType.getDataType(db.getDialect(), String.class).getTypeName(), + l, p, s, n, r, g, d, i, (Name) null, ge, null, null, null ), out)); sb.append(".asEnumDataType("); sb.append(classOf(getStrategy().getFullJavaClassName(db.getEnum(schema, u), Mode.ENUM))); diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java b/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java index d742b4f39b..3970dcc016 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java @@ -645,7 +645,27 @@ implements // [#10476] TODO: EnumType should extend Qualified E e = Tools.enums(enumDataType)[0]; - return new DefaultDataType<>(getDialect(), (DataType) null, enumDataType, lazyName(e), e.getName(), e.getName(), precision0(), scale0(), length0(), nullability(), (Field) defaultValue()); + return new DefaultDataType<>( + getDialect(), + (DataType) null, + enumDataType, + null, + lazyName(e), + e.getName(), + e.getName(), + precision0(), + scale0(), + length0(), + nullability(), + readonly(), + (Generator) generatedAlwaysAsGenerator(), + generationOption(), + generationLocation(), + collation(), + characterSet(), + identity(), + (Field) defaultValue() + ); } static final Name lazyName(E e) {