From 3b10066935044891b968f5770a161b2276bc3da4 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 2 Sep 2024 13:57:55 +0200 Subject: [PATCH] [jOOQ/jOOQ#11716] Using embedded domains with POJO generation results in duplicate getters --- .../java/org/jooq/codegen/JavaGenerator.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 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 a0ec40e461..8db73d239c 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java @@ -5828,11 +5828,20 @@ public class JavaGenerator extends AbstractGenerator { if (tableUdtOrEmbeddable instanceof TableDefinition) { List embeddables = ((TableDefinition) tableUdtOrEmbeddable).getReferencedEmbeddables(); + embeddablesLoop: for (int i = 0; i < embeddables.size(); i++) { EmbeddableDefinition embeddable = embeddables.get(i); if (!generateImmutablePojos()) generateEmbeddablePojoSetter(embeddable, i, out); + + + + + + + + generateEmbeddablePojoGetter(embeddable, i, out); } } @@ -6052,11 +6061,10 @@ public class JavaGenerator extends AbstractGenerator { forEach(embeddable.getColumns(), (column, separator) -> { if (kotlin) out.tab(1).println("%s%s", getStrategy().getJavaMemberName(column.getReferencingColumn(), Mode.POJO), separator); + else if (generatePojosAsJavaRecordClasses()) + out.println("%s%s%s", getStrategy().getJavaMemberName(column.getReferencingColumn(), Mode.POJO), emptyparens, separator); else - out.println("%s%s%s", generatePojosAsJavaRecordClasses() - ? getStrategy().getJavaMemberName(column.getReferencingColumn(), Mode.POJO) - : getStrategy().getJavaGetterName(column.getReferencingColumn(), Mode.POJO), emptyparens, separator - ); + out.println("this.%s%s", getStrategy().getJavaMemberName(column.getReferencingColumn(), Mode.POJO), separator); }); if (scala) @@ -6158,10 +6166,10 @@ public class JavaGenerator extends AbstractGenerator { } else { for (EmbeddableColumnDefinition column : embeddable.getColumns()) { - final String s = getStrategy().getJavaSetterName(column.getReferencingColumn(), Mode.POJO); + final String s = getStrategy().getJavaMemberName(column.getReferencingColumn(), Mode.POJO); final String g = getStrategy().getJavaGetterName(column, Mode.POJO); - out.println("%s(value.%s%s)%s", s, g, emptyparens, semicolon); + out.println("this.%s = value.%s%s%s", s, g, emptyparens, semicolon); } }