DbUnit не видит столбец Oracle NoSuchColumnException - PullRequest
2 голосов
/ 14 июля 2011

Настройки DbUnit:

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. 

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

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

1 Ответ

0 голосов
/ 14 июля 2011

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

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

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

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

...