Проблема DBUnit с сохранением данных

У меня есть baseDAO, который содержит методы для основных CRUD операций. И для каждой операции делаем getJpaTemplate.xxx() операции. Код отлично работает в рабочей среде, но теперь нам нужно написать UTs для DAO слоя, а мы используем DBUnit.

Я видел примеры и писал классы DBUnit. Я заметил, что операции чтения работают нормально, но операции Удалить, обновить и Создать вообще не работают. .
Когда мы пытаемся вызвать DAO.save(object), он не выдает никакого исключения, он переходит к следующей строке, но когда я пытаюсь открыть таблицу и увидеть значение, новая строка не вставляется ни эта транзакция не завершается неудачно, ни выдается какое-либо исключение.

Я сомневаюсь, что может возникнуть проблема с подключением. Для справки прилагаю метод getConnection().

protected IDatabaseConnection getConnection() throws Exception { 

 Connection con = dataSource.getConnection(); 
 DatabaseConnection connection = new DatabaseConnection(con); 
 DatabaseConfig config = connection.getConfig(); 
 config.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY,new oracleDataTypeFactory()); 
 return connection; 
}

У нас есть другой метод, который вызывается в setup () для заполнения данных из файла XML, и он отлично работает. Просто для справки я добавляю код здесь.

protected void insertData (String xmlDataFilePath) { 
    IDatabaseConnection dbConnection= getConnection(); 
    TransactionOperation.CLEAN_INSERT.execute(dbConnection,getDataSet(xmlDataFilePath));
    connection = jPATransactionManager.getDataSource().getConnection(); 
    connection.setAutoCommit(false); 
    savepoint = connection.setSavepoint("Data inserted in db"); 
    dbConnection.close();
}

Я не уверен, не увидев новую строку, вставленную в БД, как действовать дальше.
Потому что я пытался сделать

 getJpaTemplate().save(object);
 getJpaTemplate().load(ClassName.class, object's id);

который возвращает мне null и в таблице db также нет записи.

Любые предложения, пожалуйста?
Заранее спасибо.
JE.


person java_enthu    schedule 27.07.2012    source источник


Ответы (1)


savepoint = connection.setSavepoint("Данные вставлены в БД");

убедиться, что точка сохранения зафиксирована? не могли бы вы разместить здесь весь соответствующий код API?

person SmartSolution    schedule 27.07.2012