2015-08-07 5 views
0

Я бегу dbunit 2.4.9. Я получаю AmbiguousTableNameException после переключения на новый экземпляр oracle. doc указывает, что я должен поместить имя схемы в соединение при его создании. Но я не могу переопределить getConnection на DBTestCase, потому что он является окончательным. Должен ли я выбрать другой суперкласс? Я что-то пропускаю?Как изменить dbunit getConnection, несмотря на то, что он окончательный

Вот мой класс testcase.

public abstract class DbTestCase extends DBTestCase 
{ 
private static boolean doOnce = false; 
private Session session; 

public DbTestCase() throws Exception 
{ 
    super(); 
    System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_DRIVER_CLASS, "oracle.jdbc.driver.OracleDriver"); 
    System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_CONNECTION_URL, "jdbc:oracle:thin:@host:1521:sid"); 
    System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_USERNAME, "id"); 
    System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_PASSWORD, "xxxx_15"); 
} 


@Override 
protected void setUp() throws Exception 
{ 
    super.setUp(); 

    if(!doOnce){ 
     doOnce = true;   
     BasicConfigurator.configure();   
     MyHibernateFactory.initilize(); 
    } 

    session = MyHibernateFactory.getSession(); 
    session.beginTransaction(); 
} 

public void tearDown() throws Exception 
{ 
... 
} 

@Override 
protected IDataSet getDataSet() throws Exception 
{ 
    return new FlatXmlDataSetBuilder().build(new FileInputStream("src/dbtest/dataset.xml")); 
} 

}

ответ

0

Вы можете использовать свойство PropertiesBasedJdbcDatabaseTester.DBUNIT_SCHEMA

System.setProperty(PropertiesBasedJdbcDatabaseTester.DBUNIT_SCHEMA, "SCHEMA");