diff --git a/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java b/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java
index bb76da67ec..74b8d217ad 100644
--- a/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java
+++ b/jOOQ-codegen/src/main/java/org/jooq/util/JavaGenerator.java
@@ -1422,12 +1422,18 @@ public class JavaGenerator extends AbstractGenerator {
if (generateInstanceFields()) {
// [#1730] Prevent compilation errors
- final String schemaId = schema.isDefaultSchema() ? "null" : getStrategy().getFullJavaIdentifier(schema);
+ // [#1801] Cast to org.jooq.Schema to prevent ambiguities
+ final String schemaId = schema.isDefaultSchema() ? "(org.jooq.Schema) null" : getStrategy().getFullJavaIdentifier(schema);
out.tab(1).javadoc("Create an aliased %s table reference", table.getQualifiedOutputName());
out.tab(1).println("public %s(%s alias) {", className, String.class);
out.tab(2).println("super(alias, %s, %s);", schemaId, fullTableId);
out.tab(1).println("}");
+
+ out.tab(1).javadoc("Create an aliased %s table reference", table.getQualifiedOutputName());
+ out.tab(1).println("public %s(%s alias, %s... fieldAliases) {", className, String.class, String.class);
+ out.tab(2).println("super(alias, fieldAliases, %s, %s);", schemaId, fullTableId);
+ out.tab(1).println("}");
}
// Add primary / unique / foreign key information
@@ -1527,6 +1533,11 @@ public class JavaGenerator extends AbstractGenerator {
out.tab(1).println("public %s as(%s alias) {", fullClassName, String.class);
out.tab(2).println("return new %s(alias);", fullClassName);
out.tab(1).println("}");
+
+ out.tab(1).overrideInherit();
+ out.tab(1).println("public %s as(%s alias, %s... fieldAliases) {", fullClassName, String.class, String.class);
+ out.tab(2).println("return new %s(alias, fieldAliases);", fullClassName);
+ out.tab(1).println("}");
}
out.println("}");