diff --git a/jOOQ/src/main/java/org/jooq/impl/TableImpl.java b/jOOQ/src/main/java/org/jooq/impl/TableImpl.java index d361179ecd..7bf35e7127 100644 --- a/jOOQ/src/main/java/org/jooq/impl/TableImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/TableImpl.java @@ -153,8 +153,14 @@ public class TableImpl extends AbstractTable { this.fields = new Fields(); - if (aliased != null) - alias = new Alias>(aliased, name); + if (aliased != null) { + Alias> existingAlias = Tools.alias(aliased); + if (existingAlias != null) { + alias = existingAlias; + } else { + alias = new Alias>(aliased, name); + } + } else alias = null; diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java index e74c903c06..45259b8bc3 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tools.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java @@ -4184,11 +4184,11 @@ final class Tools { return null; } - static final Alias> alias(Table table) { + static final Alias> alias(Table table) { if (table instanceof TableImpl) - return ((TableImpl) table).alias; + return ((TableImpl) table).alias; else if (table instanceof TableAlias) - return ((TableAlias) table).alias; + return ((TableAlias) table).alias; else return null; }