我正在使用 HSQLDB 进行数据层集成测试,这很棒。但是,我发现我的外键约束妨碍了我的测试。例如,要在一个表上测试一个简单的选择,我必须将虚拟数据插入到另外五个表中。这让我想扔东西。
我在整个模型代码中都有 JPA 注释,并且已经配置了 Hibernate 以在配置中重新创建模式 (hbm2ddl.create-drop)。生成表时,连接被正确解释为外键约束。
我想要的是:
如果有帮助,我将使用 Spring Autowiring 这些测试。有问题的测试继承自 AbstractTransactionalJUnit4SpringContextTests .
你怎么看?这能做到吗?
最佳答案
您可以使用以下指令停用 FK 约束:
SET REFERENTIAL_INTEGRITY FALSE;
您可以通过 JDBC
Statement
执行它在您的测试方法之前(并将其设置回 TRUE
之后)。
关于hibernate - 带有 HSQLDB 的 TDD -- 删除外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2685274/