У меня есть 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.