[jOOQ/jOOQ#13411] Exclude hidden columns from records/pojos/interfaces etc.

This commit is contained in:
Lukas Eder 2024-01-19 17:45:09 +01:00
parent 1c2f46be40
commit 4acfafc71b
4 changed files with 26 additions and 4 deletions

View File

@ -6548,7 +6548,7 @@ public class JavaGenerator extends AbstractGenerator {
}
}
for (ColumnDefinition column : table.getColumns()) {
for (ColumnDefinition column : table.getColumnsIncludingHidden()) {
final DataTypeDefinition columnTypeDef = column.getType(resolver(out));
final DomainDefinition domain = schema.getDatabase().getDomain(schema, columnTypeDef.getQualifiedUserType());
final String columnTypeFull = getJavaType(columnTypeDef, out);

View File

@ -74,6 +74,7 @@ extends AbstractDefinition {
private static final JooqLogger log = JooqLogger.getLogger(AbstractElementContainerDefinition.class);
private List<E> elements;
private List<E> elementsIncludingHidden;
public AbstractElementContainerDefinition(SchemaDefinition schema, String name, String comment) {
this(schema, null, name, comment);
@ -91,6 +92,7 @@ extends AbstractDefinition {
protected final List<E> getElements() {
if (elements == null) {
elements = new ArrayList<>();
elementsIncludingHidden = new ArrayList<>();
try {
AbstractDatabase db = (AbstractDatabase) getDatabase();
@ -149,13 +151,18 @@ extends AbstractDefinition {
// [#2603] Filter exclude / include also for table columns
if (this instanceof TableDefinition && db.getIncludeExcludeColumns()) {
elements = db.filterExcludeInclude(e);
elementsIncludingHidden = db.filterExcludeInclude(e);
log.info("Columns fetched", fetchedSize(e, elements));
}
else
elements = e;
elementsIncludingHidden = e;
db.sort(elementsIncludingHidden);
elements.addAll(elementsIncludingHidden);
db.sort(elements);
}
catch (Exception e) {
log.error("Error while initialising type", e);
@ -165,6 +172,11 @@ extends AbstractDefinition {
return elements;
}
protected final List<E> getElementsIncludingHidden() {
getElements();
return elementsIncludingHidden;
}

View File

@ -292,6 +292,11 @@ implements
return getElements();
}
@Override
public final List<ColumnDefinition> getColumnsIncludingHidden() {
return getElementsIncludingHidden();
}
@Override
public final ColumnDefinition getColumn(String columnName) {
return getElement(columnName);

View File

@ -59,6 +59,11 @@ public interface TableDefinition extends Definition {
*/
List<ColumnDefinition> getColumns();
/**
* All columns in the type, table or view, including hidden columns.
*/
List<ColumnDefinition> getColumnsIncludingHidden();
/**
* Get a column in this type by its name.
*/