【问题标题】:How do I construct DBUnit dataset/whatever to insert/clean a table with tree-like data如何构建 DBUnit 数据集/如何插入/清理具有树状数据的表
【发布时间】:2011-03-13 15:04:58
【问题描述】:

我有一个非常简单的表(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 (parent) REFERENCES node (id))

【问题讨论】:

    标签: tree hierarchy hierarchical-data dbunit


    【解决方案1】:

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

    【讨论】:

    • 您正在使用 CLEAN_INSERT 清除数据库?不会是 DELETE_ALL 吗?您是如何替换数据库清理策略的?你用的是什么语言?任何与 dbunit 相关联的测试框架,例如 Spock 或 Mojito?我试图在 Grails 中完成类似的事情,但失败得很惨。自动关系似乎搞乱了 MySQL 的思维......
    猜你喜欢
    • 1970-01-01
    • 2021-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-11
    • 2015-05-21
    • 2023-03-14
    相关资源
    最近更新 更多