diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/AbstractGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/AbstractGenerator.java
index 11d36ff1f8..418cf0a104 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/codegen/AbstractGenerator.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/AbstractGenerator.java
@@ -65,140 +65,142 @@ import org.jooq.tools.JooqLogger;
*/
abstract class AbstractGenerator implements Generator {
- private static final JooqLogger log = JooqLogger.getLogger(AbstractGenerator.class);
+ private static final JooqLogger log = JooqLogger.getLogger(AbstractGenerator.class);
- boolean generateDeprecated = true;
- boolean generateDeprecationOnUnknownTypes = true;
- boolean generateIndexes = true;
- boolean generateRelations = true;
- boolean generateUDTPaths = true;
- boolean generateImplicitJoinPathsToOne = true;
- boolean generateImplicitJoinPathsToMany = true;
- boolean generateImplicitJoinPathTableSubtypes = true;
- boolean generateImplicitJoinPathUnusedConstructors = true;
- boolean generateImplicitJoinPathsAsKotlinProperties = true;
- boolean generateInstanceFields = true;
- VisibilityModifier generateVisibilityModifier = VisibilityModifier.DEFAULT;
- boolean generateGeneratedAnnotation = false;
- GeneratedAnnotationType generatedGeneratedAnnotationType = GeneratedAnnotationType.DETECT_FROM_JDK;
- boolean generateGeneratedAnnotationDate = false;
- boolean generateGeneratedAnnotationJooqVersion = true;
- boolean generateNonnullAnnotation = false;
- String generatedNonnullAnnotationType = "javax.annotation.Nonnull";
- boolean generateNullableAnnotation = false;
- boolean generateNullableAnnotationOnWriteOnlyNullableTypes = false;
- String generatedNullableAnnotationType = "javax.annotation.Nullable";
- boolean generateConstructorPropertiesAnnotation = false;
+ boolean generateDeprecated = true;
+ boolean generateDeprecationOnUnknownTypes = true;
+ boolean generateIndexes = true;
+ boolean generateRelations = true;
+ boolean generateUDTPaths = true;
+ boolean generateImplicitJoinPathsToOne = true;
+ boolean generateImplicitJoinPathsToMany = true;
+ boolean generateImplicitJoinPathTableSubtypes = true;
+ boolean generateImplicitJoinPathUnusedConstructors = true;
+ boolean generateImplicitJoinPathsAsKotlinProperties = true;
+ boolean generateInstanceFields = true;
+ VisibilityModifier generateVisibilityModifier = VisibilityModifier.DEFAULT;
+ boolean generateGeneratedAnnotation = false;
+ GeneratedAnnotationType generatedGeneratedAnnotationType = GeneratedAnnotationType.DETECT_FROM_JDK;
+ boolean generateGeneratedAnnotationDate = false;
+ boolean generateGeneratedAnnotationJooqVersion = true;
+ boolean generateNonnullAnnotation = false;
+ String generatedNonnullAnnotationType = "javax.annotation.Nonnull";
+ boolean generateNullableAnnotation = false;
+ boolean generateNullableAnnotationOnWriteOnlyNullableTypes = false;
+ String generatedNullableAnnotationType = "javax.annotation.Nullable";
+ boolean generateConstructorPropertiesAnnotation = false;
Boolean generateConstructorPropertiesAnnotationOnPojos;
Boolean generateConstructorPropertiesAnnotationOnRecords;
- boolean useSchemaVersionProvider = false;
- boolean useCatalogVersionProvider = false;
- boolean generateRoutines = true;
+ boolean useSchemaVersionProvider = false;
+ boolean useCatalogVersionProvider = false;
+ boolean generateRoutines = true;
- boolean generateSequences = true;
- boolean generateSequenceFlags = true;
- boolean generateUDTs = true;
- boolean generateTables = true;
- boolean generateEmbeddables = true;
- boolean generateRecords = true;
- boolean generateRecordsImplementingRecordN = false;
- boolean generateEnumsAsScalaSealedTraits = false;
- boolean generateEnumsAsScalaEnums = true;
- boolean generatePojos = false;
- boolean generatePojosAsJavaRecordClasses = false;
- boolean generatePojosAsScalaCaseClasses = true;
- boolean generatePojosAsKotlinDataClasses = true;
- boolean generatePojosEqualsAndHashCode = true;
- boolean generatePojosToString = true;
- boolean generateImmutablePojos = false;
- boolean generateSerializablePojos = true;
- boolean generateInterfaces = false;
- boolean generateImmutableInterfaces = false;
- boolean generateSerializableInterfaces = true;
- boolean generateDaos = false;
- boolean generateJooqVersionReference = true;
- boolean generateJPAAnnotations = false;
- String generateJPAVersion = "";
- boolean generateValidationAnnotations = false;
- boolean generateSpringAnnotations = false;
- boolean generateSpringDao = false;
- boolean generateKotlinSetterJvmNameAnnotationsOnIsPrefix = true;
- boolean generateKotlinNotNullPojoAttributes = false;
- boolean generateKotlinNotNullRecordAttributes = false;
- boolean generateKotlinNotNullInterfaceAttributes = false;
- boolean generateKotlinDefaultedNullablePojoAttributes = true;
- boolean generateKotlinDefaultedNullableRecordAttributes = true;
- GeneratedSerialVersionUID generatedSerialVersionUID = GeneratedSerialVersionUID.CONSTANT;
- int maxMembersPerInitialiser = 500;
- boolean generateQueues = true;
- boolean generateLinks = true;
- boolean generateKeys = true;
- boolean generateGlobalObjectNames = true;
- boolean generateGlobalObjectReferences = true;
- boolean generateGlobalCatalogReferences = true;
- boolean generateGlobalSchemaReferences = true;
- boolean generateGlobalRoutineReferences = true;
- boolean generateGlobalSequenceReferences = true;
- boolean generateGlobalTableReferences = true;
- boolean generateGlobalDomainReferences = true;
+ boolean generateSequences = true;
+ boolean generateSequenceFlags = true;
+ boolean generateUDTs = true;
+ boolean generateTables = true;
+ boolean generateEmbeddables = true;
+ boolean generateRecords = true;
+ boolean generateRecordsImplementingRecordN = false;
+ boolean generateEnumsAsScalaSealedTraits = false;
+ boolean generateEnumsAsScalaEnums = true;
+ boolean generatePojos = false;
+ boolean generatePojosAsJavaRecordClasses = false;
+ boolean generatePojosAsScalaCaseClasses = true;
+ boolean generatePojosAsKotlinDataClasses = true;
+ boolean generatePojosEqualsAndHashCode = true;
+ String generatePojosEqualsAndHashCodeColumnIncludeExpression = null;
+ String generatePojosEqualsAndHashCodeColumnExcludeExpression = null;
+ boolean generatePojosToString = true;
+ boolean generateImmutablePojos = false;
+ boolean generateSerializablePojos = true;
+ boolean generateInterfaces = false;
+ boolean generateImmutableInterfaces = false;
+ boolean generateSerializableInterfaces = true;
+ boolean generateDaos = false;
+ boolean generateJooqVersionReference = true;
+ boolean generateJPAAnnotations = false;
+ String generateJPAVersion = "";
+ boolean generateValidationAnnotations = false;
+ boolean generateSpringAnnotations = false;
+ boolean generateSpringDao = false;
+ boolean generateKotlinSetterJvmNameAnnotationsOnIsPrefix = true;
+ boolean generateKotlinNotNullPojoAttributes = false;
+ boolean generateKotlinNotNullRecordAttributes = false;
+ boolean generateKotlinNotNullInterfaceAttributes = false;
+ boolean generateKotlinDefaultedNullablePojoAttributes = true;
+ boolean generateKotlinDefaultedNullableRecordAttributes = true;
+ GeneratedSerialVersionUID generatedSerialVersionUID = GeneratedSerialVersionUID.CONSTANT;
+ int maxMembersPerInitialiser = 500;
+ boolean generateQueues = true;
+ boolean generateLinks = true;
+ boolean generateKeys = true;
+ boolean generateGlobalObjectNames = true;
+ boolean generateGlobalObjectReferences = true;
+ boolean generateGlobalCatalogReferences = true;
+ boolean generateGlobalSchemaReferences = true;
+ boolean generateGlobalRoutineReferences = true;
+ boolean generateGlobalSequenceReferences = true;
+ boolean generateGlobalTableReferences = true;
+ boolean generateGlobalDomainReferences = true;
- boolean generateGlobalUDTReferences = true;
- boolean generateGlobalQueueReferences = true;
- boolean generateGlobalLinkReferences = true;
- boolean generateGlobalKeyReferences = true;
- boolean generateGlobalIndexReferences = true;
- boolean generateDefaultCatalog = true;
- boolean generateDefaultSchema = true;
- boolean generateJavadoc = true;
- boolean generateComments = true;
- boolean generateCommentsOnAttributes = true;
- boolean generateCommentsOnCatalogs = true;
- boolean generateCommentsOnColumns = true;
- boolean generateCommentsOnKeys = true;
- boolean generateCommentsOnLinks = true;
- boolean generateCommentsOnPackages = true;
- boolean generateCommentsOnParameters = true;
- boolean generateCommentsOnQueues = true;
- boolean generateCommentsOnRoutines = true;
- boolean generateCommentsOnSchemas = true;
- boolean generateCommentsOnSequences = true;
- boolean generateCommentsOnDomains = true;
- boolean generateCommentsOnTables = true;
- boolean generateCommentsOnUDTs = true;
- boolean generateCommentsOnEmbeddables = true;
- boolean generateSources = true;
- boolean generateSourcesOnViews = true;
- boolean generateFluentSetters = false;
- boolean generateJavaBeansGettersAndSetters = false;
- boolean generateUseTableNameForUnambiguousFKs = true;
- boolean generateVarargsSetters = true;
- String generateFullyQualifiedTypes = "";
- boolean generateJavaTimeTypes = true;
- boolean generateSpatialTypes = true;
- boolean generateXmlTypes = true;
- boolean generateJsonTypes = true;
- boolean generateIntervalTypes = true;
- boolean generateDecfloatTypes = true;
- boolean generateTableValuedFunctions = false;
- boolean generateEmptyCatalogs = false;
- boolean generateEmptySchemas = false;
- String generateNewline = "\n";
+ boolean generateGlobalUDTReferences = true;
+ boolean generateGlobalQueueReferences = true;
+ boolean generateGlobalLinkReferences = true;
+ boolean generateGlobalKeyReferences = true;
+ boolean generateGlobalIndexReferences = true;
+ boolean generateDefaultCatalog = true;
+ boolean generateDefaultSchema = true;
+ boolean generateJavadoc = true;
+ boolean generateComments = true;
+ boolean generateCommentsOnAttributes = true;
+ boolean generateCommentsOnCatalogs = true;
+ boolean generateCommentsOnColumns = true;
+ boolean generateCommentsOnKeys = true;
+ boolean generateCommentsOnLinks = true;
+ boolean generateCommentsOnPackages = true;
+ boolean generateCommentsOnParameters = true;
+ boolean generateCommentsOnQueues = true;
+ boolean generateCommentsOnRoutines = true;
+ boolean generateCommentsOnSchemas = true;
+ boolean generateCommentsOnSequences = true;
+ boolean generateCommentsOnDomains = true;
+ boolean generateCommentsOnTables = true;
+ boolean generateCommentsOnUDTs = true;
+ boolean generateCommentsOnEmbeddables = true;
+ boolean generateSources = true;
+ boolean generateSourcesOnViews = true;
+ boolean generateFluentSetters = false;
+ boolean generateJavaBeansGettersAndSetters = false;
+ boolean generateUseTableNameForUnambiguousFKs = true;
+ boolean generateVarargsSetters = true;
+ String generateFullyQualifiedTypes = "";
+ boolean generateJavaTimeTypes = true;
+ boolean generateSpatialTypes = true;
+ boolean generateXmlTypes = true;
+ boolean generateJsonTypes = true;
+ boolean generateIntervalTypes = true;
+ boolean generateDecfloatTypes = true;
+ boolean generateTableValuedFunctions = false;
+ boolean generateEmptyCatalogs = false;
+ boolean generateEmptySchemas = false;
+ String generateNewline = "\n";
String generateIndentation;
- int generatePrintMarginForBlockComment = 80;
- GeneratedTextBlocks generateTextBlocks = GeneratedTextBlocks.DETECT_FROM_JDK;
- boolean generateWhereMethodOverrides = true;
- boolean generateRenameMethodOverrides = true;
- boolean generateAsMethodOverrides = true;
+ int generatePrintMarginForBlockComment = 80;
+ GeneratedTextBlocks generateTextBlocks = GeneratedTextBlocks.DETECT_FROM_JDK;
+ boolean generateWhereMethodOverrides = true;
+ boolean generateRenameMethodOverrides = true;
+ boolean generateAsMethodOverrides = true;
protected GeneratorStrategyWrapper strategy;
- protected String targetEncoding = "UTF-8";
- protected boolean targetClean = true;
+ protected String targetEncoding = "UTF-8";
+ protected boolean targetClean = true;
final Language languageConfigured;
Language language;
Database database;
@@ -1399,6 +1401,26 @@ abstract class AbstractGenerator implements Generator {
this.generatePojosEqualsAndHashCode = generatePojosEqualsAndHashCode;
}
+ @Override
+ public String generatePojosEqualsAndHashCodeColumnIncludeExpression() {
+ return generatePojosEqualsAndHashCodeColumnIncludeExpression;
+ }
+
+ @Override
+ public void setGeneratePojosEqualsAndHashCodeColumnIncludeExpression(String generatePojosEqualsAndHashCodeColumnIncludeExpression) {
+ this.generatePojosEqualsAndHashCodeColumnIncludeExpression = generatePojosEqualsAndHashCodeColumnIncludeExpression;
+ }
+
+ @Override
+ public String generatePojosEqualsAndHashCodeColumnExcludeExpression() {
+ return generatePojosEqualsAndHashCodeColumnExcludeExpression;
+ }
+
+ @Override
+ public void setGeneratePojosEqualsAndHashCodeColumnExcludeExpression(String generatePojosEqualsAndHashCodeColumnExcludeExpression) {
+ this.generatePojosEqualsAndHashCodeColumnExcludeExpression = generatePojosEqualsAndHashCodeColumnExcludeExpression;
+ }
+
@Override
public boolean generatePojosToString() {
return generatePojosToString;
diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java
index 4c56cbf37f..d1b235ad1f 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java
@@ -954,6 +954,10 @@ public class GenerationTool {
generator.setGenerateVarargsSetters(g.getGenerate().isVarargSetters());
if (g.getGenerate().isPojosEqualsAndHashCode() != null)
generator.setGeneratePojosEqualsAndHashCode(g.getGenerate().isPojosEqualsAndHashCode());
+ if (g.getGenerate().getPojosEqualsAndHashCodeColumnIncludeExpression() != null)
+ generator.setGeneratePojosEqualsAndHashCodeColumnIncludeExpression(g.getGenerate().getPojosEqualsAndHashCodeColumnIncludeExpression());
+ if (g.getGenerate().getPojosEqualsAndHashCodeColumnExcludeExpression() != null)
+ generator.setGeneratePojosEqualsAndHashCodeColumnExcludeExpression(g.getGenerate().getPojosEqualsAndHashCodeColumnExcludeExpression());
if (g.getGenerate().isPojosToString() != null)
generator.setGeneratePojosToString(g.getGenerate().isPojosToString());
if (g.getGenerate().getFullyQualifiedTypes() != null)
diff --git a/jOOQ-codegen/src/main/java/org/jooq/codegen/Generator.java b/jOOQ-codegen/src/main/java/org/jooq/codegen/Generator.java
index 7c58cb5d3b..f22277d0a8 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/codegen/Generator.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/Generator.java
@@ -1290,6 +1290,30 @@ public interface Generator {
*/
void setGeneratePojosEqualsAndHashCode(boolean generatePojosEqualsAndHashCode);
+ /**
+ * A regular expression matching columns to include in equals()
+ * and hashCode() methods of generated POJOS.
+ */
+ String generatePojosEqualsAndHashCodeColumnIncludeExpression();
+
+ /**
+ * A regular expression matching columns to include in equals()
+ * and hashCode() methods of generated POJOS.
+ */
+ void setGeneratePojosEqualsAndHashCodeColumnIncludeExpression(String generatePojosEqualsAndHashCodeColumnIncludeExpression);
+
+ /**
+ * A regular expression matching columns to exclude in equals()
+ * and hashCode() methods of generated POJOS.
+ */
+ String generatePojosEqualsAndHashCodeColumnExcludeExpression();
+
+ /**
+ * A regular expression matching columns to exclude in equals()
+ * and hashCode() methods of generated POJOS.
+ */
+ void setGeneratePojosEqualsAndHashCodeColumnExcludeExpression(String generatePojosEqualsAndHashCodeColumnExcludeExpression);
+
/**
* Whether a toString() method should be generated on POJOs
*/
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 ce753667f0..db2edbd831 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/JavaGenerator.java
@@ -6836,6 +6836,14 @@ public class JavaGenerator extends AbstractGenerator {
final String className = getStrategy().getJavaClassName(tableUdtOrEmbeddable, Mode.POJO);
List replacingEmbeddablesAndUnreplacedColumns = replacingEmbeddablesAndUnreplacedColumns(tableUdtOrEmbeddable);
+ if (generatePojosEqualsAndHashCodeColumnIncludeExpression() != null ||
+ generatePojosEqualsAndHashCodeColumnExcludeExpression() != null)
+ replacingEmbeddablesAndUnreplacedColumns = database.filterExcludeInclude(
+ replacingEmbeddablesAndUnreplacedColumns,
+ generatePojosEqualsAndHashCodeColumnExcludeExpression(),
+ generatePojosEqualsAndHashCodeColumnIncludeExpression()
+ );
+
out.println();
if (scala) {
diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/Database.java b/jOOQ-meta/src/main/java/org/jooq/meta/Database.java
index 582b8e8e8f..4655ac39a6 100644
--- a/jOOQ-meta/src/main/java/org/jooq/meta/Database.java
+++ b/jOOQ-meta/src/main/java/org/jooq/meta/Database.java
@@ -969,6 +969,11 @@ public interface Database extends AutoCloseable {
*/
List filterExcludeInclude(List definitions);
+ /**
+ * Filter a list of definitions according to the exclude / include expressions passed as arguments.
+ */
+ List filterExcludeInclude(List definitions, String exclude, String include);
+
/**
* Sort a list of definitions according to the {@link #getOrderProvider()} defined in this database.
*/
diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Generate.java b/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Generate.java
index 0baacd6814..6900912a93 100644
--- a/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Generate.java
+++ b/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Generate.java
@@ -116,6 +116,12 @@ public class Generate implements Serializable, XMLAppendable
protected Boolean pojos = false;
@XmlElement(defaultValue = "true")
protected Boolean pojosEqualsAndHashCode = true;
+ @XmlElement(defaultValue = "")
+ @XmlJavaTypeAdapter(StringAdapter.class)
+ protected String pojosEqualsAndHashCodeColumnIncludeExpression = "";
+ @XmlElement(defaultValue = "")
+ @XmlJavaTypeAdapter(StringAdapter.class)
+ protected String pojosEqualsAndHashCodeColumnExcludeExpression = "";
@XmlElement(defaultValue = "true")
protected Boolean pojosToString = true;
@XmlElement(defaultValue = "false")
@@ -1291,6 +1297,38 @@ public class Generate implements Serializable, XMLAppendable
this.pojosEqualsAndHashCode = value;
}
+ /**
+ * The regular expression matching columns for inclusion in generated equals() and hashCode() methods in POJOs.
+ *
+ */
+ public String getPojosEqualsAndHashCodeColumnIncludeExpression() {
+ return pojosEqualsAndHashCodeColumnIncludeExpression;
+ }
+
+ /**
+ * The regular expression matching columns for inclusion in generated equals() and hashCode() methods in POJOs.
+ *
+ */
+ public void setPojosEqualsAndHashCodeColumnIncludeExpression(String value) {
+ this.pojosEqualsAndHashCodeColumnIncludeExpression = value;
+ }
+
+ /**
+ * The regular expression matching columns for exclusion in generated equals() and hashCode() methods in POJOs.
+ *
+ */
+ public String getPojosEqualsAndHashCodeColumnExcludeExpression() {
+ return pojosEqualsAndHashCodeColumnExcludeExpression;
+ }
+
+ /**
+ * The regular expression matching columns for exclusion in generated equals() and hashCode() methods in POJOs.
+ *
+ */
+ public void setPojosEqualsAndHashCodeColumnExcludeExpression(String value) {
+ this.pojosEqualsAndHashCodeColumnExcludeExpression = value;
+ }
+
/**
* Generate basic toString() methods in POJOs.
*
@@ -3650,6 +3688,24 @@ public class Generate implements Serializable, XMLAppendable
return this;
}
+ /**
+ * The regular expression matching columns for inclusion in generated equals() and hashCode() methods in POJOs.
+ *
+ */
+ public Generate withPojosEqualsAndHashCodeColumnIncludeExpression(String value) {
+ setPojosEqualsAndHashCodeColumnIncludeExpression(value);
+ return this;
+ }
+
+ /**
+ * The regular expression matching columns for exclusion in generated equals() and hashCode() methods in POJOs.
+ *
+ */
+ public Generate withPojosEqualsAndHashCodeColumnExcludeExpression(String value) {
+ setPojosEqualsAndHashCodeColumnExcludeExpression(value);
+ return this;
+ }
+
/**
* Generate basic toString() methods in POJOs.
*
@@ -4464,6 +4520,8 @@ public class Generate implements Serializable, XMLAppendable
builder.append("enumsAsScalaEnums", enumsAsScalaEnums);
builder.append("pojos", pojos);
builder.append("pojosEqualsAndHashCode", pojosEqualsAndHashCode);
+ builder.append("pojosEqualsAndHashCodeColumnIncludeExpression", pojosEqualsAndHashCodeColumnIncludeExpression);
+ builder.append("pojosEqualsAndHashCodeColumnExcludeExpression", pojosEqualsAndHashCodeColumnExcludeExpression);
builder.append("pojosToString", pojosToString);
builder.append("pojosAsJavaRecordClasses", pojosAsJavaRecordClasses);
builder.append("pojosAsScalaCaseClasses", pojosAsScalaCaseClasses);
@@ -4945,6 +5003,24 @@ public class Generate implements Serializable, XMLAppendable
return false;
}
}
+ if (pojosEqualsAndHashCodeColumnIncludeExpression == null) {
+ if (other.pojosEqualsAndHashCodeColumnIncludeExpression!= null) {
+ return false;
+ }
+ } else {
+ if (!pojosEqualsAndHashCodeColumnIncludeExpression.equals(other.pojosEqualsAndHashCodeColumnIncludeExpression)) {
+ return false;
+ }
+ }
+ if (pojosEqualsAndHashCodeColumnExcludeExpression == null) {
+ if (other.pojosEqualsAndHashCodeColumnExcludeExpression!= null) {
+ return false;
+ }
+ } else {
+ if (!pojosEqualsAndHashCodeColumnExcludeExpression.equals(other.pojosEqualsAndHashCodeColumnExcludeExpression)) {
+ return false;
+ }
+ }
if (pojosToString == null) {
if (other.pojosToString!= null) {
return false;
@@ -5732,6 +5808,8 @@ public class Generate implements Serializable, XMLAppendable
result = ((prime*result)+((enumsAsScalaEnums == null)? 0 :enumsAsScalaEnums.hashCode()));
result = ((prime*result)+((pojos == null)? 0 :pojos.hashCode()));
result = ((prime*result)+((pojosEqualsAndHashCode == null)? 0 :pojosEqualsAndHashCode.hashCode()));
+ result = ((prime*result)+((pojosEqualsAndHashCodeColumnIncludeExpression == null)? 0 :pojosEqualsAndHashCodeColumnIncludeExpression.hashCode()));
+ result = ((prime*result)+((pojosEqualsAndHashCodeColumnExcludeExpression == null)? 0 :pojosEqualsAndHashCodeColumnExcludeExpression.hashCode()));
result = ((prime*result)+((pojosToString == null)? 0 :pojosToString.hashCode()));
result = ((prime*result)+((pojosAsJavaRecordClasses == null)? 0 :pojosAsJavaRecordClasses.hashCode()));
result = ((prime*result)+((pojosAsScalaCaseClasses == null)? 0 :pojosAsScalaCaseClasses.hashCode()));
diff --git a/jOOQ-meta/src/main/resources/org/jooq/meta/xsd/jooq-codegen-3.20.0.xsd b/jOOQ-meta/src/main/resources/org/jooq/meta/xsd/jooq-codegen-3.20.0.xsd
index 6fb9021aa9..71830b850e 100644
--- a/jOOQ-meta/src/main/resources/org/jooq/meta/xsd/jooq-codegen-3.20.0.xsd
+++ b/jOOQ-meta/src/main/resources/org/jooq/meta/xsd/jooq-codegen-3.20.0.xsd
@@ -2723,6 +2723,14 @@ jOOQ API, without adding custom data type bindings to them.]]>
+
+
+
+
+
+
+
+