diff --git a/src/main/java/com/avaje/ebean/config/dbplatform/DbDdlSyntax.java b/src/main/java/com/avaje/ebean/config/dbplatform/DbDdlSyntax.java index 31c3c235f..92edc9cc6 100644 --- a/src/main/java/com/avaje/ebean/config/dbplatform/DbDdlSyntax.java +++ b/src/main/java/com/avaje/ebean/config/dbplatform/DbDdlSyntax.java @@ -253,16 +253,12 @@ public class DbDdlSyntax { /** * Builds and returns a fully index name. */ - public String getIndexName(String qualifiedTableName, String propName, int ixCount) { + public String getIndexName(String table, String propName, int ixCount) { - TableName tableName = new TableName(qualifiedTableName); - - StringBuilder buffer = new StringBuilder(); - tableName.appendCatalogAndSchema(buffer); - buffer.append("ix_"); - buffer.append(tableName.getName()); - buffer.append("_"); - buffer.append(propName); + + StringBuilder buffer = new StringBuilder(30); + buffer.append("ix_").append(TableName.parse(table)); + buffer.append("_").append(propName); addSuffix(buffer, ixCount); @@ -272,16 +268,11 @@ public class DbDdlSyntax { /** * Builds and returns a fully qualified foreign key constraint name. */ - public String getForeignKeyName(String qualifiedTableName, String propName, int fkCount) { + public String getForeignKeyName(String table, String propName, int fkCount) { - TableName tableName = new TableName(qualifiedTableName); - - StringBuilder buffer = new StringBuilder(); - tableName.appendCatalogAndSchema(buffer); - buffer.append("fk_"); - buffer.append(tableName.getName()); - buffer.append("_"); - buffer.append(propName); + StringBuilder buffer = new StringBuilder(30); + buffer.append("fk_").append(TableName.parse(table)); + buffer.append("_").append(propName); addSuffix(buffer, fkCount); @@ -292,8 +283,8 @@ public class DbDdlSyntax { * Adds the suffix. */ protected void addSuffix(StringBuilder buffer, int count) { - final String suffixNr = Integer.toString(count); - final int suffixLen = suffixNr.length() + 1; + String suffixNr = Integer.toString(count); + int suffixLen = suffixNr.length() + 1; if (buffer.length() + suffixLen > maxConstraintNameLength) { buffer.setLength(maxConstraintNameLength - suffixLen); diff --git a/src/main/java/com/avaje/ebeaninternal/server/ddl/CreateTableVisitor.java b/src/main/java/com/avaje/ebeaninternal/server/ddl/CreateTableVisitor.java index 06d97cc9c..5c11200f4 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/ddl/CreateTableVisitor.java +++ b/src/main/java/com/avaje/ebeaninternal/server/ddl/CreateTableVisitor.java @@ -40,7 +40,7 @@ public class CreateTableVisitor extends AbstractBeanVisitor { private ArrayList uniqueConstraints = new ArrayList(); - private TableName tableName; + private String table; public Set getWroteColumns() { return wroteColumns; @@ -70,7 +70,8 @@ public class CreateTableVisitor extends AbstractBeanVisitor { */ protected void writeTableName(BeanDescriptor descriptor) { - tableName = new TableName(descriptor.getBaseTable()); + // parse to remove any catalog or schema prefix on the table + table = TableName.parse(descriptor.getBaseTable()); ctx.write(descriptor.getBaseTable()); } @@ -109,7 +110,7 @@ public class CreateTableVisitor extends AbstractBeanVisitor { } protected String getConstraintName(String prefix, BeanProperty p) { - return prefix + tableName.getName() + "_" + p.getDbColumn(); + return prefix + table + "_" + p.getDbColumn(); } protected void addUniqueConstraint(String constraintExpression) { @@ -192,7 +193,7 @@ public class CreateTableVisitor extends AbstractBeanVisitor { } else { // Add the primay key constraint - String pkName = ddl.getPrimaryKeyName(tableName.getName()); + String pkName = ddl.getPrimaryKeyName(table); ctx.write(" constraint ").write(pkName).write(" primary key ("); VisitorUtil.visit(idProp, new AbstractPropertyVisitor() { @@ -225,10 +226,10 @@ public class CreateTableVisitor extends AbstractBeanVisitor { private String createUniqueConstraint(String table, int idx, CompoundUniqueContraint uc) { - String uqConstraintName = "uq_"+TableName.parse(table)+"_"+(idx + 1); - - StringBuilder sb = new StringBuilder(); - sb.append("constraint ").append(uqConstraintName).append(" unique ("); + StringBuilder sb = new StringBuilder(50); + sb.append("constraint ") + .append("uq_").append(TableName.parse(table)).append("_").append(idx + 1) + .append(" unique ("); String[] columns = uc.getColumns();