Как решить проблему нарушения ограничения внешнего ключа при использовании springtestdbunit?

У меня есть две таблицы, одна из полей таблицы A ссылается на поле таблицы B, я использую аннотацию @DatabaseSetup для импорта файла xml, и я записала данные таблицы A и таблицы B в набор данных в файле xml. когда я запускаю модульный тест, он говорит, что INSERT для таблицы A вызвал нарушение ограничения внешнего ключа для ключа (0).

Как выразить ссылочные отношения между двумя таблицами?

1 ответ

Решение

Я предполагаю, что ваш XML-файл набора данных выглядит примерно так:

<TABLE_A ID="1"/>

<TABLE_B ID="1" TABLE_A_ID="1"/>

Это нарушение может произойти, если:

  • Ваша вторая строка содержит значение для ссылки на внешний ключ, которая не существует, например,

<TABLE_A ID="1"/>

<TABLE_B ID="1" TABLE_A_ID="2"/>

  • Ваш файл набора данных вставляет строки в неправильном порядке, например:

<TABLE_B ID="1" TABLE_A_ID="1"/>

<TABLE_A ID="1"/>

Если вы предоставите свой файл набора данных и Db Unit Test, я могу быть более конкретным

Другие вопросы по тегам