mirror of https://github.com/apache/openjpa.git
OPENJPA-399 committing Teresa's patch
git-svn-id: https://svn.apache.org/repos/asf/openjpa/branches/1.0.x@589784 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
446a0e0543
commit
3860784216
|
@ -235,16 +235,15 @@ public class TableJDBCSeq
|
||||||
schema = group.addSchema(schemaName);
|
schema = group.addSchema(schemaName);
|
||||||
|
|
||||||
schema.importTable(_pkColumn.getTable());
|
schema.importTable(_pkColumn.getTable());
|
||||||
// build the index for the sequence tables
|
|
||||||
// the index name will the fully qualified table name +_IDX
|
|
||||||
Table tab = schema.getTable(_table);
|
|
||||||
Index idx = tab.addIndex(tab.getFullName()+"_IDX");
|
|
||||||
idx.setUnique(true);
|
|
||||||
// we need to reset the table name in the column with the
|
// we need to reset the table name in the column with the
|
||||||
// fully qualified name for matching the table name from the
|
// fully qualified name for matching the table name from the
|
||||||
// Column.
|
// Column.
|
||||||
_pkColumn.resetTableName(schemaName+"."+_pkColumn.getTableName());
|
_pkColumn.resetTableName(schemaName + "."
|
||||||
idx.addColumn(_pkColumn);
|
+ _pkColumn.getTableName());
|
||||||
|
// some databases require to create an index for the sequence table
|
||||||
|
_conf.getDBDictionaryInstance().createIndexIfNecessary(schema,
|
||||||
|
_table, _pkColumn);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -31,12 +31,17 @@ import org.apache.openjpa.jdbc.kernel.exps.FilterValue;
|
||||||
import org.apache.openjpa.jdbc.kernel.exps.Lit;
|
import org.apache.openjpa.jdbc.kernel.exps.Lit;
|
||||||
import org.apache.openjpa.jdbc.kernel.exps.Param;
|
import org.apache.openjpa.jdbc.kernel.exps.Param;
|
||||||
import org.apache.openjpa.jdbc.kernel.exps.Val;
|
import org.apache.openjpa.jdbc.kernel.exps.Val;
|
||||||
|
import org.apache.openjpa.jdbc.schema.Column;
|
||||||
|
import org.apache.openjpa.jdbc.schema.Index;
|
||||||
|
import org.apache.openjpa.jdbc.schema.Schema;
|
||||||
import org.apache.openjpa.jdbc.schema.Sequence;
|
import org.apache.openjpa.jdbc.schema.Sequence;
|
||||||
|
import org.apache.openjpa.jdbc.schema.Table;
|
||||||
import org.apache.openjpa.kernel.Filters;
|
import org.apache.openjpa.kernel.Filters;
|
||||||
import org.apache.openjpa.lib.util.Localizer;
|
import org.apache.openjpa.lib.util.Localizer;
|
||||||
import org.apache.openjpa.meta.JavaTypes;
|
import org.apache.openjpa.meta.JavaTypes;
|
||||||
import org.apache.openjpa.util.OpenJPAException;
|
import org.apache.openjpa.util.OpenJPAException;
|
||||||
import org.apache.openjpa.util.UnsupportedException;
|
import org.apache.openjpa.util.UnsupportedException;
|
||||||
|
|
||||||
import serp.util.Strings;
|
import serp.util.Strings;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -742,4 +747,19 @@ public class DB2Dictionary
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an index if necessary for some database tables
|
||||||
|
*/
|
||||||
|
public void createIndexIfNecessary(Schema schema, String table,
|
||||||
|
Column pkColumn) {
|
||||||
|
if (isDB2ZOSV8xOrLater()) {
|
||||||
|
// build the index for the sequence tables
|
||||||
|
// the index name will the fully qualified table name + _IDX
|
||||||
|
Table tab = schema.getTable(table);
|
||||||
|
Index idx = tab.addIndex(tab.getFullName() + "_IDX");
|
||||||
|
idx.setUnique(true);
|
||||||
|
idx.addColumn(pkColumn);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3982,4 +3982,11 @@ public class DBDictionary
|
||||||
public String getCastFunction(Val val, String func) {
|
public String getCastFunction(Val val, String func) {
|
||||||
return func;
|
return func;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an index if necessary for some database tables
|
||||||
|
*/
|
||||||
|
public void createIndexIfNecessary(Schema schema, String table,
|
||||||
|
Column pkColumn) {
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue