From 8a3098c3dcc91e9129c869675f81d3b63ef70944 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 9 Nov 2020 14:42:20 +0100 Subject: [PATCH] [jOOQ/jOOQ#10805] Kotlin POJOs with array properties must implement equals() and hashCode() --- .../java/org/jooq/codegen/JavaGenerator.java | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 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 cfb134ff0b..fd9e36b660 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java @@ -4707,13 +4707,10 @@ public class JavaGenerator extends AbstractGenerator { } protected void generatePojoEqualsAndHashCode(Definition tableOrUDT, JavaWriter out) { - if (scala && generatePojosAsScalaCaseClasses()) - return; - if (kotlin && generatePojosAsKotlinDataClasses()) - return; - if (java && generatePojosAsJavaRecordClasses()) - return; - + // [#10805] We used to prevent equals and hash code when generating case classes, data classes + // or record classes. There isn't really a good reason for this. Users can define + // the flags themselves to their liking, and in some cases, overriding is still required + // e.g. in the presence of arrays. final String className = getStrategy().getJavaClassName(tableOrUDT, Mode.POJO); out.println(); @@ -4867,13 +4864,6 @@ public class JavaGenerator extends AbstractGenerator { } protected void generatePojoToString(Definition tableOrUDT, JavaWriter out) { - if (scala && generatePojosAsScalaCaseClasses()) - return; - if (kotlin && generatePojosAsKotlinDataClasses()) - return; - if (java && generatePojosAsJavaRecordClasses()) - return; - final String className = getStrategy().getJavaClassName(tableOrUDT, Mode.POJO); out.println();