2011-03-13 15 views
2

我有一個非常簡單的表(ID,名稱,父)表示一棵樹。我想使用DbUnit在測試此表,所以我創建了一個簡單的數據集的2個節點(YAML而不是XML的可讀性):我如何構建DBUnit數據集/無論插入/清理樹狀數據表

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

這被插入的所有權利,但試圖清理表時(我「M使用DatabaseOperation.CLEAN_INSERT)它會導致違反約束:

com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException:不能刪除或更新父行,外鍵約束失敗(節點,約束FK_NODE.PARENT_TO_NODE。 ID FOREIGN KEY(parent)REFERENCES node(id))

回答

2

我發現了一個解決方法:using truncate_表操作,而不是溫和的清潔操作,對我來說,在mysql上工作

+0

您正在使用CLEAN_INSERT清除數據庫?不是DELETE_ALL?你是如何取代數據庫清理的策略的?你使用什麼語言?任何鏈接到dbunit的測試框架,如Spock或Mojito?我正在嘗試在Grails中完成類似的事情,但我失敗了。汽車關係似乎混淆了MySQL的思想...... – 2016-09-12 15:27:44