From d22d68f19e52a75e70c2925de448a08ec3a3b911 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Wed, 2 Jan 2013 14:39:50 +0100 Subject: [PATCH] [#1801] Add Table.as(String, String...) to allow for creating a table alias with aliased fields - Fixed code generator --- .../src/main/java/org/jooq/util/JavaGenerator.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) 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("}");