[jOOQ/jOOQ#13355] Invalid code generated when pojosEqualsAndHashCode option is enabled and column name is 'other'

This commit is contained in:
Lukas Eder 2022-03-28 15:50:33 +02:00
parent 27d529db23
commit 95bd4ecce8

View File

@ -5387,15 +5387,15 @@ public class JavaGenerator extends AbstractGenerator {
for (TypedElementDefinition<?> column : getTypedElements(tableOrUDT)) {
final String columnMember = getStrategy().getJavaMemberName(column, Mode.POJO);
out.println("if (%s == null) {", columnMember);
out.println("if (this.%s == null) {", columnMember);
out.println("if (other.%s != null)", columnMember);
out.println("return false");
out.println("}");
if (isArrayType(getJavaType(column.getType(resolver(out)), out)))
out.println("else if (!(%s sameElements other.%s))", columnMember, columnMember);
out.println("else if (!(this.%s sameElements other.%s))", columnMember, columnMember);
else
out.println("else if (!%s.equals(other.%s))", columnMember, columnMember);
out.println("else if (!this.%s.equals(other.%s))", columnMember, columnMember);
out.println("return false");
}
@ -5417,15 +5417,15 @@ public class JavaGenerator extends AbstractGenerator {
for (TypedElementDefinition<?> column : getTypedElements(tableOrUDT)) {
final String columnMember = getStrategy().getJavaMemberName(column, Mode.POJO);
out.println("if (%s === null) {", columnMember);
out.println("if (this.%s === null) {", columnMember);
out.println("if (o.%s !== null)", columnMember);
out.println("return false");
out.println("}");
if (isArrayType(getJavaType(column.getType(resolver(out)), out)))
out.println("else if (!%s.equals(%s, o.%s))", Arrays.class, columnMember, columnMember);
out.println("else if (!%s.equals(this.%s, o.%s))", Arrays.class, columnMember, columnMember);
else
out.println("else if (%s != o.%s)", columnMember, columnMember);
out.println("else if (this.%s != o.%s)", columnMember, columnMember);
out.println("return false");
}
@ -5448,15 +5448,15 @@ public class JavaGenerator extends AbstractGenerator {
for (TypedElementDefinition<?> column : getTypedElements(tableOrUDT)) {
final String columnMember = getStrategy().getJavaMemberName(column, Mode.POJO);
out.println("if (%s == null) {", columnMember);
out.println("if (this.%s == null) {", columnMember);
out.println("if (other.%s != null)", columnMember);
out.println("return false;");
out.println("}");
if (isArrayType(getJavaType(column.getType(resolver(out)), out)))
out.println("else if (!%s.equals(%s, other.%s))", Arrays.class, columnMember, columnMember);
out.println("else if (!%s.equals(this.%s, other.%s))", Arrays.class, columnMember, columnMember);
else
out.println("else if (!%s.equals(other.%s))", columnMember, columnMember);
out.println("else if (!this.%s.equals(other.%s))", columnMember, columnMember);
out.println("return false;");
}