mirror of https://github.com/apache/openjpa.git
fix Spec compat tests to work with all DBs
test should rely on whether KEY is a reserved word or not.
This commit is contained in:
parent
d8bb07fe86
commit
90ba3b8d5d
|
@ -419,7 +419,13 @@ public class TestContainerSpecCompatibilityOptions
|
|||
// trigger table creation
|
||||
em.getTransaction().begin();
|
||||
em.getTransaction().commit();
|
||||
assertSQLFragnments(sql, "CREATE TABLE C_U1M_Map_FK", "Uni1MFK_ID", "KEY0");
|
||||
|
||||
// on some databases KEY is a forbidden name for columns.
|
||||
String keyColumn = getDbDictioary(emf).getInvalidColumnWordSet().contains("KEY")
|
||||
? "KEY0"
|
||||
: "KEY";
|
||||
assertSQLFragnments(sql, "CREATE TABLE C_U1M_Map_FK", "Uni1MFK_ID", keyColumn);
|
||||
|
||||
assertSQLFragnments(sql, "CREATE TABLE Bi1M_Map_JT_C", "B_ID", "C_ID");
|
||||
assertSQLFragnments(sql, "CREATE TABLE C_U1M_Map_RelKey_FK", "Uni1MFK_ID");
|
||||
assertSQLFragnments(sql, "CREATE TABLE Bi1M_Map_RelKey_JT_C", "B_ID", "C_ID");
|
||||
|
|
|
@ -410,7 +410,13 @@ extends AbstractCachedEMFTestCase {
|
|||
// trigger table creation
|
||||
em.getTransaction().begin();
|
||||
em.getTransaction().commit();
|
||||
assertSQLFragnments(sql, "CREATE TABLE C_U1M_Map_FK", "Uni1MFK_ID", "KEY0");
|
||||
|
||||
// on some databases KEY is a forbidden name for columns.
|
||||
String keyColumn = getDbDictioary(emf).getInvalidColumnWordSet().contains("KEY")
|
||||
? "KEY0"
|
||||
: "KEY";
|
||||
assertSQLFragnments(sql, "CREATE TABLE C_U1M_Map_FK", "Uni1MFK_ID", keyColumn);
|
||||
|
||||
assertSQLFragnments(sql, "CREATE TABLE Bi1M_Map_JT_C", "B_ID", "C_ID");
|
||||
assertSQLFragnments(sql, "CREATE TABLE C_U1M_Map_RelKey_FK", "Uni1MFK_ID");
|
||||
assertSQLFragnments(sql, "CREATE TABLE Bi1M_Map_RelKey_JT_C", "B_ID", "C_ID");
|
||||
|
@ -867,8 +873,7 @@ extends AbstractCachedEMFTestCase {
|
|||
map.put("openjpa.MetaDataFactory", "jpa(Types=" + buf.toString() + oldValue + ")");
|
||||
return (OpenJPAEntityManagerFactorySPI)OpenJPAPersistence.
|
||||
createEntityManagerFactory("persistence_2_0",
|
||||
"org/apache/openjpa/persistence/compat/" +
|
||||
"persistence_2_0.xml", map);
|
||||
"org/apache/openjpa/persistence/compat/persistence_2_0.xml", map);
|
||||
}
|
||||
|
||||
void assertSQLFragnments(List<String> list, String... keys) {
|
||||
|
|
|
@ -38,10 +38,13 @@ import javax.persistence.EntityManager;
|
|||
import javax.persistence.EntityManagerFactory;
|
||||
import javax.persistence.Persistence;
|
||||
|
||||
import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
|
||||
import org.apache.openjpa.jdbc.sql.DBDictionary;
|
||||
import org.apache.openjpa.kernel.AbstractBrokerFactory;
|
||||
import org.apache.openjpa.kernel.Broker;
|
||||
import org.apache.openjpa.meta.ClassMetaData;
|
||||
import org.apache.openjpa.persistence.JPAFacadeHelper;
|
||||
import org.apache.openjpa.persistence.OpenJPAEntityManagerFactory;
|
||||
import org.apache.openjpa.persistence.OpenJPAEntityManagerFactorySPI;
|
||||
import org.apache.openjpa.persistence.OpenJPAPersistence;
|
||||
|
||||
|
@ -271,10 +274,10 @@ public abstract class AbstractPersistenceTestCase extends TestCase {
|
|||
if (b != null && !b.isClosed()) {
|
||||
EntityManager em = JPAFacadeHelper.toEntityManager(b);
|
||||
if( em.getTransaction().isActive() ) {
|
||||
try {
|
||||
em.getTransaction().rollback();
|
||||
} catch (Exception e) {
|
||||
}
|
||||
try {
|
||||
em.getTransaction().rollback();
|
||||
} catch (Exception e) {
|
||||
}
|
||||
}
|
||||
closeEM(em);
|
||||
}
|
||||
|
@ -355,6 +358,11 @@ public abstract class AbstractPersistenceTestCase extends TestCase {
|
|||
}
|
||||
}
|
||||
|
||||
protected DBDictionary getDbDictioary(EntityManagerFactory emf) {
|
||||
return ((JDBCConfiguration)((OpenJPAEntityManagerFactory) emf).getConfiguration()).getDBDictionaryInstance();
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return the entity name for the given type.
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue