[#5969] Add <includeInvisibleColumns/> to code generator configuration to allow for hiding Oracle's and H2's INVISIBLE columns
This commit is contained in:
parent
006fd92c37
commit
7a188c868c
@ -484,6 +484,7 @@ public class GenerationTool {
|
||||
database.setIncludePackageUDTs(!FALSE.equals(d.isIncludePackageUDTs()));
|
||||
database.setIncludePackageConstants(!FALSE.equals(d.isIncludePackageConstants()));
|
||||
database.setIncludeIndexes(!FALSE.equals(d.isIncludeIndexes()));
|
||||
database.setIncludeInvisibleColumns(!FALSE.equals(d.isIncludeInvisibleColumns()));
|
||||
database.setIncludePrimaryKeys(!FALSE.equals(d.isIncludePrimaryKeys()));
|
||||
database.setIncludeRoutines(!FALSE.equals(d.isIncludeRoutines()));
|
||||
database.setIncludeSequences(!FALSE.equals(d.isIncludeSequences()));
|
||||
|
||||
@ -107,6 +107,7 @@ public abstract class AbstractDatabase implements Database {
|
||||
private String[] excludes;
|
||||
private String[] includes = { ".*" };
|
||||
private boolean includeExcludeColumns;
|
||||
private boolean includeInvisibleColumns = true;
|
||||
private boolean includeTables = true;
|
||||
private boolean includeRoutines = true;
|
||||
private boolean includeTriggerRoutines = false;
|
||||
@ -728,6 +729,16 @@ public abstract class AbstractDatabase implements Database {
|
||||
return includeExcludeColumns;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final void setIncludeInvisibleColumns(boolean includeInvisibleColumns) {
|
||||
this.includeInvisibleColumns = includeInvisibleColumns;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean getIncludeInvisibleColumns() {
|
||||
return includeInvisibleColumns;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean getIncludeTables() {
|
||||
return includeTables;
|
||||
|
||||
@ -506,6 +506,21 @@ public interface Database extends AutoCloseable {
|
||||
*/
|
||||
void setIncludeTables(boolean includeTables);
|
||||
|
||||
/**
|
||||
* Whether tables (and views) should be included.
|
||||
*/
|
||||
boolean getIncludeTables();
|
||||
|
||||
/**
|
||||
* Whether invisible columns should be included.
|
||||
*/
|
||||
void setIncludeInvisibleColumns(boolean includeInvisibleColumns);
|
||||
|
||||
/**
|
||||
* Whether invisible columns should be included.
|
||||
*/
|
||||
boolean getIncludeInvisibleColumns();
|
||||
|
||||
/**
|
||||
* Whether zero-scale decimal types should be treated as their most
|
||||
* appropriate, corresponding integer type.
|
||||
@ -518,11 +533,6 @@ public interface Database extends AutoCloseable {
|
||||
*/
|
||||
boolean getForceIntegerTypesOnZeroScaleDecimals();
|
||||
|
||||
/**
|
||||
* Whether tables (and views) should be included.
|
||||
*/
|
||||
boolean getIncludeTables();
|
||||
|
||||
/**
|
||||
* [#3488] Add an additional filter to the database that is applied in
|
||||
* addition to include / exclude.
|
||||
|
||||
@ -40,6 +40,7 @@ package org.jooq.meta.h2;
|
||||
import static org.jooq.impl.DSL.choose;
|
||||
import static org.jooq.impl.DSL.inline;
|
||||
import static org.jooq.impl.DSL.name;
|
||||
import static org.jooq.impl.DSL.noCondition;
|
||||
import static org.jooq.impl.DSL.zero;
|
||||
import static org.jooq.meta.h2.information_schema.tables.Columns.COLUMNS;
|
||||
import static org.jooq.tools.StringUtils.defaultString;
|
||||
@ -97,8 +98,10 @@ public class H2TableDefinition extends AbstractTableDefinition {
|
||||
.from(COLUMNS)
|
||||
.where(Columns.TABLE_SCHEMA.equal(getSchema().getName()))
|
||||
.and(Columns.TABLE_NAME.equal(getName()))
|
||||
.orderBy(Columns.ORDINAL_POSITION)
|
||||
.fetch()) {
|
||||
.and(!getDatabase().getIncludeInvisibleColumns()
|
||||
? Columns.COLUMN_TYPE.notLike("%INVISIBLE%")
|
||||
: noCondition())
|
||||
.orderBy(Columns.ORDINAL_POSITION)) {
|
||||
|
||||
// [#5331] AUTO_INCREMENT (MySQL style)
|
||||
// [#5331] DEFAULT nextval('sequence') (PostgreSQL style)
|
||||
|
||||
@ -78,6 +78,8 @@ public class Database implements Serializable
|
||||
protected Boolean includeUniqueKeys = true;
|
||||
@XmlElement(defaultValue = "true")
|
||||
protected Boolean includeForeignKeys = true;
|
||||
@XmlElement(defaultValue = "true")
|
||||
protected Boolean includeInvisibleColumns = true;
|
||||
@XmlElement(defaultValue = "")
|
||||
@XmlJavaTypeAdapter(StringAdapter.class)
|
||||
protected String recordVersionFields = "";
|
||||
@ -639,6 +641,30 @@ public class Database implements Serializable
|
||||
this.includeForeignKeys = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* This flag indicates whether invisible columns should be included in output produced by this database
|
||||
*
|
||||
* @return
|
||||
* possible object is
|
||||
* {@link Boolean }
|
||||
*
|
||||
*/
|
||||
public Boolean isIncludeInvisibleColumns() {
|
||||
return includeInvisibleColumns;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value of the includeInvisibleColumns property.
|
||||
*
|
||||
* @param value
|
||||
* allowed object is
|
||||
* {@link Boolean }
|
||||
*
|
||||
*/
|
||||
public void setIncludeInvisibleColumns(Boolean value) {
|
||||
this.includeInvisibleColumns = value;
|
||||
}
|
||||
|
||||
/**
|
||||
* All table and view columns that are used as "version" fields for optimistic locking.
|
||||
* <p>
|
||||
@ -1381,6 +1407,11 @@ public class Database implements Serializable
|
||||
return this;
|
||||
}
|
||||
|
||||
public Database withIncludeInvisibleColumns(Boolean value) {
|
||||
setIncludeInvisibleColumns(value);
|
||||
return this;
|
||||
}
|
||||
|
||||
public Database withRecordVersionFields(String value) {
|
||||
setRecordVersionFields(value);
|
||||
return this;
|
||||
@ -1704,6 +1735,11 @@ public class Database implements Serializable
|
||||
sb.append(includeForeignKeys);
|
||||
sb.append("</includeForeignKeys>");
|
||||
}
|
||||
if (includeInvisibleColumns!= null) {
|
||||
sb.append("<includeInvisibleColumns>");
|
||||
sb.append(includeInvisibleColumns);
|
||||
sb.append("</includeInvisibleColumns>");
|
||||
}
|
||||
if (recordVersionFields!= null) {
|
||||
sb.append("<recordVersionFields>");
|
||||
sb.append(recordVersionFields);
|
||||
@ -2035,6 +2071,15 @@ public class Database implements Serializable
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (includeInvisibleColumns == null) {
|
||||
if (other.includeInvisibleColumns!= null) {
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
if (!includeInvisibleColumns.equals(other.includeInvisibleColumns)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (recordVersionFields == null) {
|
||||
if (other.recordVersionFields!= null) {
|
||||
return false;
|
||||
@ -2294,6 +2339,7 @@ public class Database implements Serializable
|
||||
result = ((prime*result)+((includePrimaryKeys == null)? 0 :includePrimaryKeys.hashCode()));
|
||||
result = ((prime*result)+((includeUniqueKeys == null)? 0 :includeUniqueKeys.hashCode()));
|
||||
result = ((prime*result)+((includeForeignKeys == null)? 0 :includeForeignKeys.hashCode()));
|
||||
result = ((prime*result)+((includeInvisibleColumns == null)? 0 :includeInvisibleColumns.hashCode()));
|
||||
result = ((prime*result)+((recordVersionFields == null)? 0 :recordVersionFields.hashCode()));
|
||||
result = ((prime*result)+((recordTimestampFields == null)? 0 :recordTimestampFields.hashCode()));
|
||||
result = ((prime*result)+((syntheticIdentities == null)? 0 :syntheticIdentities.hashCode()));
|
||||
|
||||
@ -515,6 +515,10 @@ Excludes match before includes, i.e. excludes have a higher priority.]]></jxb:ja
|
||||
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[This flag indicates whether foreign keys should be included in output produced by this database]]></jxb:javadoc></jxb:property></appinfo></annotation>
|
||||
</element>
|
||||
|
||||
<element name="includeInvisibleColumns" type="boolean" default="true" minOccurs="0" maxOccurs="1">
|
||||
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[This flag indicates whether invisible columns should be included in output produced by this database]]></jxb:javadoc></jxb:property></appinfo></annotation>
|
||||
</element>
|
||||
|
||||
<element name="recordVersionFields" type="string" default="" minOccurs="0" maxOccurs="1">
|
||||
<annotation><appinfo><jxb:property><jxb:javadoc><![CDATA[All table and view columns that are used as "version" fields for optimistic locking.
|
||||
<p>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user