используя dbunit с оракулом.Схема проблемы - PullRequest
2 голосов
/ 15 февраля 2011

Как вы ограничиваете DBunit определенной схемой.При выполнении DatabaseOperation.CLEAN_INSERT dbunit это исключение

org.dbunit.database.AmbiguousTableNameException: SCHEMA_UPDATE_TBL

Но эта таблица отсутствует в схеме, которую я использую.Я думаю, что это происходит из другой таблицы в той же базе данных Oracle.Как мне ограничить dbunit, чтобы посмотреть на мою схему.

Я использую jpa.

например, соединение, которое я использую в моем файле persistence.xml, выглядит следующим образом

            <property name="hibernate.connection.username" value="mikea"/>
        <property name="hibernate.connection.password" value="mikea"/>
        <property name="hibernate.connection.url" value="jdbc:oracle:thin:@localhost:1521:MOT4"/>

С уважением

Ответы [ 2 ]

2 голосов
/ 15 февраля 2011

Хорошо.Я понял.Конструктор DatabaseConnection () принимает параметр схемы по умолчанию.Например, «mikea» - это схема, которую я хочу использовать:

connection = new DatabaseConnection(
        ( ( HibernateEntityManager ) em ).getSession().connection(),"mikea" );
DatabaseConfig config = connection.getConfig();
Class factory_class = Class.forName( "org.dbunit.ext.oracle.Oracle10DataTypeFactory" );
config.setProperty( DatabaseConfig.PROPERTY_DATATYPE_FACTORY, factory_class.
                newInstance() );
1 голос
/ 13 января 2017

Это также ответ от часто задаваемых вопросов DBUnit: http://dbunit.sourceforge.net/faq.html#AmbiguousTableNameException

Эта ошибка возникает, когда схема не указана и DbUnit обнаруживает, что она получает информацию столбцов из нескольких таблиц с одинаковым именем и расположенав разных схемах.

Эту проблему можно решить тремя различными способами:

  • Укажите имя схемы при создании соединения с базой данных.Обратите внимание, что для Oracle вы должны указать имя схемы в верхнем регистре.
  • Убедитесь, что подключение ограничено доступом только к одной схеме.
  • Включить функцию квалифицированных имен таблиц.http://dbunit.sourceforge.net/properties.html#qualifiedtablenames
...