diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java index e318cb5871..d1a16320ae 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractField.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractField.java @@ -253,8 +253,8 @@ implements @SuppressWarnings("unchecked") @Override - public Field as(Name alias) { - return new FieldAlias<>((Field) (this instanceof Condition c ? DSL.field(c) : this), alias); + public /* non-final */ Field as(Name alias) { + return new FieldAlias<>((Field) (this instanceof Condition c ? DSL.field(c) : this), alias, getCommentPart()); } @Override @@ -277,7 +277,7 @@ implements } @Override - public final Field comment(Comment comment) { + public /* non-final */ Field comment(Comment comment) { return DSL.field(getQualifiedName(), getDataType(), comment); } diff --git a/jOOQ/src/main/java/org/jooq/impl/FieldAlias.java b/jOOQ/src/main/java/org/jooq/impl/FieldAlias.java index bb23294632..47ec09cdf6 100644 --- a/jOOQ/src/main/java/org/jooq/impl/FieldAlias.java +++ b/jOOQ/src/main/java/org/jooq/impl/FieldAlias.java @@ -41,6 +41,7 @@ package org.jooq.impl; import java.util.Objects; import org.jooq.Clause; +import org.jooq.Comment; import org.jooq.Context; import org.jooq.Field; import org.jooq.Name; @@ -65,7 +66,11 @@ implements private final Alias> alias; FieldAlias(Field field, Name alias) { - super(alias, field.getDataType()); + this(field, alias, null); + } + + FieldAlias(Field field, Name alias, Comment comment) { + super(alias, field.getDataType(), comment); this.alias = new Alias<>(field, this, alias); } @@ -87,7 +92,12 @@ implements @Override public final Field as(Name as) { - return alias.wrapped().as(as); + return new FieldAlias<>(alias.wrapped(), as, getCommentPart()); + } + + @Override + public final Field comment(Comment comment) { + return new FieldAlias<>(alias.wrapped(), alias.alias, comment); } @Override