From 3893d1e3246473ee34e2d129dd364fe078979aaf Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 22 Sep 2022 16:14:27 +0200 Subject: [PATCH] [jOOQ/jOOQ#6311] Add flag to code generator to use DBA_XYZ views instead of ALL_XYZ views --- .../java/org/jooq/codegen/GenerationTool.java | 7 ++++ .../java/org/jooq/meta/jaxb/Database.java | 42 +++++++++++++++++++ .../org/jooq/meta/xsd/jooq-codegen-3.18.0.xsd | 14 ++++--- 3 files changed, 58 insertions(+), 5 deletions(-) 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 806d551e0e..b6caaa7dcd 100644 --- a/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java +++ b/jOOQ-codegen/src/main/java/org/jooq/codegen/GenerationTool.java @@ -436,6 +436,13 @@ public class GenerationTool { ? databaseClass(connection) : databaseClass(j); database = databaseClass.newInstance(); + + + + + + + database.setBasedir(configuration.getBasedir()); database.setProperties(properties(d.getProperties())); database.setOnError(configuration.getOnError()); diff --git a/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Database.java b/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Database.java index e1db2fd9c2..8ebcb14b6c 100644 --- a/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Database.java +++ b/jOOQ-meta/src/main/java/org/jooq/meta/jaxb/Database.java @@ -167,6 +167,8 @@ public class Database implements Serializable, XMLAppendable @XmlElement(defaultValue = "true") protected Boolean forceIntegerTypesOnZeroScaleDecimals = true; protected Boolean tableValuedFunctions; + @XmlElement(defaultValue = "false") + protected Boolean oracleUseDBAViews = false; @XmlElement(defaultValue = "5") protected Integer logSlowQueriesAfterSeconds = 5; @XmlElement(defaultValue = "5") @@ -1871,6 +1873,30 @@ public class Database implements Serializable, XMLAppendable this.tableValuedFunctions = value; } + /** + * Specify whether to use the Oracle DBA_XYZ views instead of the ALL_XYZ views. + * + * @return + * possible object is + * {@link Boolean } + * + */ + public Boolean isOracleUseDBAViews() { + return oracleUseDBAViews; + } + + /** + * Sets the value of the oracleUseDBAViews property. + * + * @param value + * allowed object is + * {@link Boolean } + * + */ + public void setOracleUseDBAViews(Boolean value) { + this.oracleUseDBAViews = value; + } + /** * The number of seconds that are considered "slow" before a query is logged to indicate a bug, 0 for not logging. * @@ -2608,6 +2634,11 @@ public class Database implements Serializable, XMLAppendable return this; } + public Database withOracleUseDBAViews(Boolean value) { + setOracleUseDBAViews(value); + return this; + } + /** * The number of seconds that are considered "slow" before a query is logged to indicate a bug, 0 for not logging. * @@ -2864,6 +2895,7 @@ public class Database implements Serializable, XMLAppendable builder.append("forcedTypesForXMLSchemaCollections", forcedTypesForXMLSchemaCollections); builder.append("forceIntegerTypesOnZeroScaleDecimals", forceIntegerTypesOnZeroScaleDecimals); builder.append("tableValuedFunctions", tableValuedFunctions); + builder.append("oracleUseDBAViews", oracleUseDBAViews); builder.append("logSlowQueriesAfterSeconds", logSlowQueriesAfterSeconds); builder.append("logSlowResultsAfterSeconds", logSlowResultsAfterSeconds); builder.append("properties", "property", properties); @@ -3453,6 +3485,15 @@ public class Database implements Serializable, XMLAppendable return false; } } + if (oracleUseDBAViews == null) { + if (other.oracleUseDBAViews!= null) { + return false; + } + } else { + if (!oracleUseDBAViews.equals(other.oracleUseDBAViews)) { + return false; + } + } if (logSlowQueriesAfterSeconds == null) { if (other.logSlowQueriesAfterSeconds!= null) { return false; @@ -3612,6 +3653,7 @@ public class Database implements Serializable, XMLAppendable result = ((prime*result)+((forcedTypesForXMLSchemaCollections == null)? 0 :forcedTypesForXMLSchemaCollections.hashCode())); result = ((prime*result)+((forceIntegerTypesOnZeroScaleDecimals == null)? 0 :forceIntegerTypesOnZeroScaleDecimals.hashCode())); result = ((prime*result)+((tableValuedFunctions == null)? 0 :tableValuedFunctions.hashCode())); + result = ((prime*result)+((oracleUseDBAViews == null)? 0 :oracleUseDBAViews.hashCode())); result = ((prime*result)+((logSlowQueriesAfterSeconds == null)? 0 :logSlowQueriesAfterSeconds.hashCode())); result = ((prime*result)+((logSlowResultsAfterSeconds == null)? 0 :logSlowResultsAfterSeconds.hashCode())); result = ((prime*result)+((properties == null)? 0 :properties.hashCode())); diff --git a/jOOQ-meta/src/main/resources/org/jooq/meta/xsd/jooq-codegen-3.18.0.xsd b/jOOQ-meta/src/main/resources/org/jooq/meta/xsd/jooq-codegen-3.18.0.xsd index d779d07659..1162cb14ea 100644 --- a/jOOQ-meta/src/main/resources/org/jooq/meta/xsd/jooq-codegen-3.18.0.xsd +++ b/jOOQ-meta/src/main/resources/org/jooq/meta/xsd/jooq-codegen-3.18.0.xsd @@ -1067,6 +1067,10 @@ and VARRAY types in Oracle. While this flag defaults to true for most databases, it defaults to false for Oracle.]]> + + + + @@ -2485,10 +2489,10 @@ e.g. org.jooq.generated.schema1, org.jooq.generated.schema2]]> - - - - - + + + + +