[jOOQ/jOOQ#13557] MySQL / MariaDB generated columns with enum type are

not generated as readonly
This commit is contained in:
Lukas Eder 2022-05-17 16:23:40 +02:00
parent 0b7e91c18b
commit 9bbf43fba6
2 changed files with 25 additions and 2 deletions

View File

@ -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)));

View File

@ -645,7 +645,27 @@ implements
// [#10476] TODO: EnumType should extend Qualified
E e = Tools.enums(enumDataType)[0];
return new DefaultDataType<>(getDialect(), (DataType<E>) null, enumDataType, lazyName(e), e.getName(), e.getName(), precision0(), scale0(), length0(), nullability(), (Field) defaultValue());
return new DefaultDataType<>(
getDialect(),
(DataType<E>) null,
enumDataType,
null,
lazyName(e),
e.getName(),
e.getName(),
precision0(),
scale0(),
length0(),
nullability(),
readonly(),
(Generator<?, ?, E>) generatedAlwaysAsGenerator(),
generationOption(),
generationLocation(),
collation(),
characterSet(),
identity(),
(Field) defaultValue()
);
}
static final <E extends EnumType> Name lazyName(E e) {