diff --git a/jOOQ/src/main/java/org/jooq/impl/TableImpl.java b/jOOQ/src/main/java/org/jooq/impl/TableImpl.java index 84da1c5ec8..e34379c755 100644 --- a/jOOQ/src/main/java/org/jooq/impl/TableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/TableImpl.java @@ -196,8 +196,19 @@ public class TableImpl extends AbstractTable implements Sco super(options, name, schema, comment); this.fields = new FieldsImpl<>(); - this.child = child; - this.childPath = path == null ? null : Tools.aliasedKey((ForeignKey) path, child, this); + + if (child != null) { + this.child = child; + this.childPath = path == null ? null : Tools.aliasedKey((ForeignKey) path, child, this); + } + else if (aliased instanceof TableImpl) { + this.child = ((TableImpl) aliased).child; + this.childPath = ((TableImpl) aliased).childPath; + } + else { + this.child = null; + this.childPath = null; + } if (aliased != null) { @@ -206,12 +217,12 @@ public class TableImpl extends AbstractTable implements Sco Alias> existingAlias = Tools.alias(aliased); if (existingAlias != null) - alias = new Alias<>(existingAlias.wrapped, this, name, existingAlias.fieldAliases, existingAlias.wrapInParentheses); + this.alias = new Alias<>(existingAlias.wrapped, this, name, existingAlias.fieldAliases, existingAlias.wrapInParentheses); else - alias = new Alias<>(aliased, this, name); + this.alias = new Alias<>(aliased, this, name); } else - alias = null; + this.alias = null; this.parameters = parameters; }