Параметр схемы dbunit не работает - PullRequest
0 голосов
/ 02 марта 2012

У меня есть следующая конфигурация для dbunit

<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>dbunit-maven-plugin</artifactId>
        <version>1.0-beta-3</version>
        <dependencies>
        <dependency>
         <groupId>ojdbc6</groupId>
             <artifactId>ojdbc6</artifactId>
             <version>1.0</version>
             <scope>system</scope>
             <systemPath>${project.basedir}/lib/ojdbc6.jar</systemPath>
         </dependency>
        </dependencies>
        <configuration>
            <driver>oracle.jdbc.driver.OracleDriver</driver>
            <url>jdbc:oracle:thin:@host.com:1521/user</url>
            <username>user</username>
            <password>password</password>
            <format>flat</format>
            <schema>myschemaname</schema>
            <useQualifiedTableNames>true</useQualifiedTableNames> 
            <tables>
                <table>
                    <name>tablename</name>
                </table>
            </tables>
         </configuration>
    </plugin>

Когда я запускаю цель экспорта, происходит сбой с исключением sql, сообщающим, что таблица не найдена.Однако, если я изменю имя таблицы с tablename на myschemaname.tablename и удалю schema, экспорт узла будет работать правильно.Даже если я не удаляю schema узел, он работает правильно, поэтому он просто не работает с myschemaname.tablename именем таблицы.

Что не так с конфигурацией?

1 Ответ

1 голос
/ 03 марта 2012

Попробуйте установить для useQualifiedTableNames значение false:

<useQualifiedTableNames>false</useQualifiedTableNames> 

Ознакомьтесь с документацией плагина dbunit maven здесь .

ОБНОВЛЕНИЕ:
если вы используете Oracle 10g, вам, вероятно, потребуется также включить skipOracleRecycleBinTables :

<skipOracleRecycleBinTables>true</skipOracleRecycleBinTables> 

Как указано в DBUnit doc здесь :

Пропустить таблицы корзины Oracle 10g

Включить или отключить обработку таблиц корзины Oracle (таблицы, начинающиеся с BIN $).Таблицы recyle bin в Oracle 10g могут нарушить допущение DbUnit об уникальности имен таблиц в схеме, поскольку эти таблицы чувствительны к регистру.Включите эту функцию для баз данных Oracle 10g до тех пор, пока не будет устранена ошибка в драйвере oracle, которая неправильно сообщает об этих системных таблицах в DbUnit.

Надеюсь, это поможет.

...