JdbcSQLException:参照完整性约束违规[在删除时]

时间:2018-04-03 12:14:25

标签: sql jdbc foreign-keys h2 dbunit

我正在为我的应用程序设置单元测试,而且我需要对数据库进行模拟,因此我不会改变实际的数据库。

所以,我使用 DBUnit 来模拟基于 XML文件的数据库:

<?xml version="1.0" encoding="UTF-8"?>
<dataset>
    <ACTION_TYPE ID="1" NAME="INVALID_CPT"/>
    <ACTION_TYPE ID="2" NAME="INTEGRATED_FLOW"/>
    <ACTION_TYPE ID="3" NAME="CLOSING_TECHNICAL_FLOW"/>
    <ACTION_TYPE ID="4" NAME="AUDIT_FLOW"/>
    <ACTION_TYPE ID="5" NAME="VALIDATION_FLOW"/>
    <ACTION_TYPE ID="6" NAME="RETURN_DRAFT_FLOW"/>

    <USER_GROUP ID="1" NAME="AKA_CPT"/>
    <USER_GROUP ID="2" NAME="AKA_ADMIN_SECU"/>
    <USER_GROUP ID="3" NAME="AKA_CISO"/>
    <USER_GROUP ID="4" NAME="AKA_ADMIN_NETWORK"/>

    <ACTION_USER_GROUP ACTION_TYPE_ID="1" USER_GROUP_ID="1"/>
    <ACTION_USER_GROUP ACTION_TYPE_ID="4" USER_GROUP_ID="1"/>
    <ACTION_USER_GROUP ACTION_TYPE_ID="6" USER_GROUP_ID="1"/>
    <ACTION_USER_GROUP ACTION_TYPE_ID="2" USER_GROUP_ID="2"/>
    <ACTION_USER_GROUP ACTION_TYPE_ID="3" USER_GROUP_ID="2"/>
    <ACTION_USER_GROUP ACTION_TYPE_ID="5" USER_GROUP_ID="2"/>
    <ACTION_USER_GROUP ACTION_TYPE_ID="5" USER_GROUP_ID="3"/>
    <ACTION_USER_GROUP ACTION_TYPE_ID="2" USER_GROUP_ID="4"/>
</dataset>

这只是整个XML文件的一部分,但这是我的问题所在。

我有这两个对象 ACTION_TYPE USER_GROUP ,这些对象由多对多关系链接。

但是一旦我运行我的测试代码,我就会收到此错误:

org.h2.jdbc.JdbcSQLException: Referential integrity constraint violation: "FKFA9ACTE184RNO1RS40IW6E1LK: PUBLIC.ACTION FOREIGN KEY(USER_GROUP_ID) REFERENCES PUBLIC.USER_GROUP(ID) (2)"; SQL statement:
delete from USER_GROUP [23503-193]

我知道完整性约束违规是什么,但我不认为我在上面的XML文件中创建了一个。

有人知道这个错误来自哪里,也许我可以解决它?

提前谢谢

0 个答案:

没有答案