使用springtestdbunit时如何解决违反外键约束的问题?

How to solve foreign key constraint violation issue when using springtestdbunit?

我有两个table,其中一个table A 的字段引用了table B 的字段,我使用注释@DatabaseSetup 来导入xml 文件,我在 xml 文件的数据集中写入了 table A 和 table B 的数据。当我 运行 单元测试时,它说 INSERT on table A caused a violation of foreign key constraint for key(0).

如何表达两个table之间的引用关系?

我假设您的数据集 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 单元测试我可以更具体