Как решить проблему нарушения ограничения внешнего ключа при использовании 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, я могу быть более конкретным