2016-03-03 3 views
2

H2 1.4.191.
DbUnit 2.5.1.
Как это можно исправить?
Код и результаты для 3-х случаях:org.dbunit.dataset.NoSuchTableException, но таблица существует

org.dbunit.dataset.NoSuchTableException: category 
org.dbunit.dataset.NoSuchTableException: Category 
org.dbunit.dataset.NoSuchTableException: CATEGORY 
// 
<dataset> 
<Category categoryId="9223372036854775806" 
     categoryName="NAME" 
     categoryParentId="9223372036854775805"/> 
</dataset> 
// 
CREATE TABLE Category (
    categoryId  INT   AUTO_INCREMENT, 
    categoryName  VARCHAR  NOT NULL, 
    categoryParentId INT   NOT NULL, 
    PRIMARY KEY (categoryId) 
) 
//Check - tried to recreate 
org.h2.jdbc.JdbcSQLException: Table "CATEGORY" already exists; 
+1

Вы используете DTD для загрузки файлов XML? Если да, можете ли вы опубликовать это тоже? – schtever

ответ

1

Иногда, когда вы используете DbUnit вам нужно определить схему, из которой вы пытаетесь использовать таблицу, вероятно, вы могли бы попробовать добавить

<dataset> 
<schema.Category categoryId="9223372036854775806" 
     categoryName="NAME" 
     categoryParentId="9223372036854775805"/> 
</dataset> 

Если вы не проверяете источник данных, который используете, вероятно, вы не указываете на правильную базу данных или схему.

Для dbunit у нас есть properties, рассмотрев возможность использования свойства Qualified table names следующим образом.

DatabaseConfig dBConfig = dBConn.getConfig(); // dBConn is a IDatabaseConnection 
dBConfig.setProperty(DatabaseConfig.FEATURE_QUALIFIED_TABLE_NAMES, true); 
+0

Спасибо! Но как это должно быть указано? Я использую схему «тест» по умолчанию. « ArthurDn

+0

Я добавил конфигурацию в свой ответ – Koitoer

+0

http://dbunit.sourceforge.net/faq.html – Koitoer

Смежные вопросы