如何构建 DBUnit 数据集/无论什么来插入/清理具有树状数据的表

发布于 2024-10-21 13:50:53 字数 475 浏览 7 评论 0原文

我有一个非常简单的表(id、name、parent)来表示一棵树。我想在测试这个表时使用 dbunit,所以我为 2 个节点创建了一个简单的数据集(yaml 而不是 xml 以提高可读性):

node:
  - id: 1
    name: default
    parent: null
  - id: 2
    name: default-child
    parent: 1

这可以正常插入,但是当尝试清理表时(我正在使用 DatabaseOperation.CLEAN_INSERT)它会导致约束冲突:

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:无法删除或更新父行:外键约束失败(节点,CONSTRAINT FK_NODE.PARENT_TO_NODE.ID FOREIGN KEY(父级)REFERENCES节点(id) )

I have a very easy table (id, name, parent) that represents a tree. I want to use dbunit while testing this table, so I created a simple dataset for 2 nodes (yaml instead of xml for readability):

node:
  - id: 1
    name: default
    parent: null
  - id: 2
    name: default-child
    parent: 1

This gets inserted all right, but when trying to clean the table (I'm using DatabaseOperation.CLEAN_INSERT) it causes a constraint violation:

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Cannot delete or update a parent row: a foreign key constraint fails (node, CONSTRAINT FK_NODE.PARENT_TO_NODE.ID FOREIGN KEY (parent) REFERENCES node (id))

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

无尽的现实 2024-10-28 13:50:53

我找到了一个解决方法:在 mysql 上使用 truncate_table 操作而不是温和的清理操作对我有用

i found a workaround: using truncate_table operation instead of gentle clean operation works for me on mysql

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文