[jOOQ/jOOQ#14003] Compilation error in generated code when combining

<pojos/>, <interfaces/> and <embeddables/>
This commit is contained in:
Lukas Eder 2022-09-21 12:52:38 +02:00
parent f73be0d9da
commit b8017d917c

View File

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