Возникла следующая проблема: есть набор из 6 dbUnit-тестов. Для каждого из них подготовлен dataset, вот пример:
<?xml version='1.0' encoding='UTF-8'?>
<dataset>
<SCHEME.OBJINFO ID="10" STATUS="STATUS1" TYPE="TYPE1" CID="0" EDATE="2009-04-30"/>
<SCHEME.OBJINFO ID="11" STATUS="STATUS1" TYPE="TYPE1" CID="0" EDATE="2009-04-30"/>
<SCHEME.OBJINFO ID="12" STATUS="STATUS1" TYPE="TYPE1" CID="0" EDATE="2009-04-30"/>
...
</dataset>
Всего делается вставка в 9-10 записей в 4 разные таблицы (ссылаются друг на друга через foreign key).
Импорт делается следующим образом:
IDataSet dataSet = new FlatXmlDataSet(new File(fileName));
Connection jdbcConnection = ApplicationContext.getDataSource().getConnection();
IDatabaseConnection connection = new DatabaseConnection(jdbcConnection);
DatabaseConfig config = connection.getConfig();
config.setFeature("http://www.dbunit.org/features/qualifiedTableNames", true);
DatabaseOperation.REFRESH.execute(connection, dataSet);
В итоге один такой импорт делается около минуты. База удалённая, таблицы содержат достаточно много записей, но через стандартные средства JDBC вставляется работает намного быстрее.
Из-за чего может так тормозить импорт через dbUnit, он как-то активно запрашивает и использует метаинформацию о таблицах, что-то ещё?