mirror of
https://github.com/ebean-orm/ebean.git
synced 2024-04-21 10:51:47 +00:00
Addition to fix for #139 - DDL constraint generation when table with schema
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -40,7 +40,7 @@ public class CreateTableVisitor extends AbstractBeanVisitor {
|
||||
|
||||
private ArrayList<String> uniqueConstraints = new ArrayList<String>();
|
||||
|
||||
private TableName tableName;
|
||||
private String table;
|
||||
|
||||
public Set<String> 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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user