DbUnit не видит столбец Oracle NoSuchColumnException

Настройки ДбЮнит:

DatabaseConfig config = connection.getConfig();
config.setProperty(DatabaseConfig.FEATURE_SKIP_ORACLE_RECYCLEBIN_TABLES, true);
config.setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new org.dbunit.ext.oracle.OracleDataTypeFactory());

Код:

@Test
    @DataSet(value="ReportTest.testPropagationToChild.xml", loadStrategy=RefreshLoadStrategy.class)
    public void testPropagationToChild() {

Набор данных:

<dataset>
    <REPORT ID="-1" NODE_NAME="TG1" NODE_LEVEL="2" PARENT_ID="0" RENA_STATUS="1" PSR_STATUS="1" PSR_AMOUNT="200" RENA_AMOUNT="1000" PSR_LAST_UPDATED_BY="u11" RENA_LAST_UPDATED_BY="u2"/>

Таблица:

 ID     PARENT_ID   NODE_NAME     NODE_LEVEL     RENA_STATUS     RENA_LAST_UPDATED     RENA_LAST_UPDATED_BY     RENA_AMOUNT           PSR_STATUS     PSR_LAST_UPDATED     PSR_LAST_UPDATED_BY     PSR_AMOUNT     RENA_COMMENT     ADDITIONAL_COMMENT

Исключение:

Caused by: org.dbunit.dataset.NoSuchColumnException: REPORT.PSR_LAST_UPDATED_BY -  (Non-uppercase input column: PSR_LAST_UPDATED_BY) in ColumnNameToIndexes cache map. Note that the map's column names are NOT case sensitive. 

Другие столбцы (например, идентификатор и т. д.) подходят для импорта. Я использую Oracle 11g, dbunit 2.4.8.

Почему не удается импортировать PSR_LAST_UPDATED_BY? Спасибо!


person dbf    schedule 14.07.2011    source источник
comment
Вы нашли какое-либо решение для вашей проблемы? у меня сейчас так же...   -  person Gilles Bodart    schedule 27.10.2016


Ответы (1)


Я считаю, что ваше исключение говорит вам, что не так:

(столбец ввода не в верхнем регистре: PSR_LAST_UPDATED_BY) в карте кэша ColumnNameToIndexes. Обратите внимание, что имена столбцов карты НЕ чувствительны к регистру.

Мне кажется, что ваш столбец был создан со смешанным регистром, и в этом случае его нужно указывать в двойных кавычках, точно так же, как в словаре. Не уверен, как вы это делаете в DBUnit. По-видимому, где-то есть «карта», которая определяет столбцы таблицы и предполагает имена столбцов в верхнем регистре. Желательно, чтобы столбец был переименован в верхний регистр.

Этот SO вопрос/ответ иллюстрирует то, что, по моему мнению, здесь происходит.

person DCookie    schedule 14.07.2011