org.dbunit.database.AmbiguousTableNameException - PullRequest
0 голосов
/ 09 мая 2018
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
    <employee name = "abc" empId = "100" location = "goa" dept = "IT" />
        <facilities transport="Y" mealcard = "" driver = "Y"/>
        <reportees manager = "XXX" lead = "XXX" VP = "XXX"/>
    <employee name = "XYZ" empId = "101" location = "mombai" dept = "IT" />
        <facilities transport="Y" mealcard = "" driver = "Y"/>
        <reportees manager = "XXX" lead = "XXX" VP = "XXX"/>
    <employee name = "PQA" empId = "102" location = "delhi" dept = "IT" />
        <facilities transport="Y" mealcard = "" driver = "Y"/>
        <reportees manager = "XXX" lead = "XXX" VP = "XXX"/>

выше - мой XML. Я должен подтвердить то же самое. Я использую DBUnit для сравнения того же XML с другим XML (другой XML имеет такое же содержимое, но сгенерировано из другого источника). При создании набора данных я получаю "org.dbunit.database.AmbiguousTableNameException".

У меня есть SQL-запрос для каждого тега XML. Например. Для тега сотрудника я запрашиваю empID. для объектов, которые я запрашиваю на foodCard и т. д. и т. д. Я перебираю теги XML. Первая итерация проходит без ошибок. Я использую QueryDataSet.addTable (table_name, query) для добавления таблиц, т. Е. Тегов XML. Но когда приходит следующая итерация и я снова пытаюсь добавить тег сотрудника, я получаю указанную выше ошибку.

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Я решил эту проблему. Я скажу тебе как. В набор данных для повторяющихся тегов я просто добавил случайные числа, например в моем приведенном выше XML employee является повторяющимся тегом, поэтому я добавил employee_123 для первого экземпляра в наборе данных для следующего экземпляра и добавил employee_098. Таким образом мне удается избавиться от AmbigiousTableNameException. Позже я использовал RegEx, чтобы удалить «_ [randomNumber]», добавленный к тегу сотрудника. Код выполняется успешно.

0 голосов
/ 09 мая 2018

Сконфигурируйте имя схемы, чтобы dbUnit знал, какой из них использовать. См. Почему я получаю "AmbiguousTableNameException"?

...