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 c407e95661..42bdb590b2 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java @@ -2261,6 +2261,10 @@ public class JavaGenerator extends AbstractGenerator { getStrategy().getJavaMemberName(column, Mode.POJO), getStrategy().getJavaMemberName(column, Mode.POJO), udtType); + else if (kotlinEffectivelyNotNull(out, t, Mode.RECORD) && !kotlinEffectivelyNotNull(out, t, Mode.POJO)) + out.println("value.%s?.let { this.%s = it }", + getStrategy().getJavaMemberName(column, Mode.POJO), + getStrategy().getJavaMemberName(column, Mode.POJO)); else out.println("this.%s = value.%s", getStrategy().getJavaMemberName(column, Mode.POJO), @@ -2372,14 +2376,6 @@ public class JavaGenerator extends AbstractGenerator { } } - private boolean kotlinEffectivelyNotNull(JavaWriter out, EmbeddableDefinition e, Mode mode) { - for (EmbeddableColumnDefinition c : e.getColumns()) - if (kotlinEffectivelyNotNull(out, c, mode)) - return true; - - return false; - } - private boolean isArrayOfUDTs(final TypedElementDefinition t, final JavaTypeResolver r) { // [#11183] TODO: Move this to DataTypeDefinition? @@ -8155,6 +8151,14 @@ public class JavaGenerator extends AbstractGenerator { return kotlinEffectivelyNotNull(out, typed, mode) ? "" : "?"; } + private boolean kotlinEffectivelyNotNull(JavaWriter out, EmbeddableDefinition e, Mode mode) { + for (EmbeddableColumnDefinition c : e.getColumns()) + if (kotlinEffectivelyNotNull(out, c, mode)) + return true; + + return false; + } + private boolean kotlinEffectivelyNotNull(JavaWriter out, TypedElementDefinition typed, Mode mode) { if (mode == Mode.POJO && generateKotlinNotNullPojoAttributes() || mode == Mode.RECORD && generateKotlinNotNullRecordAttributes() ||