hibernate - 如何避免与 DbUnit 插入的 ID 和 Hibernate 插入的实体发生冲突

标签 hibernate testing dbunit

我想使用 DbUnit 来测试 JPA/Hibernate Dao,但由于 DbUnit XML 文件包含我的实体的硬编码 ID,因此在测试由 Hibernate 完成的插入时我遇到了问题。

您是否知道在从 XML 文件插入数据时会使用在我的实体上定义的 PK 生成器的任何 DbUnit 扩展或解决方案?甚至使用 Hibernate 本身插入数据?

其他策略 ?

研究成果

最佳答案

对于测试数据中的硬编码 ID,您可以使用负 ID 或非常高的 ID,例如从 Integer.MAX_VALUE 开始倒数。

您还可以使用自定义 ID 生成器。但是,这将需要在构建时替换被测实体的注释。您可以找到更多详细信息 here

关于hibernate - 如何避免与 DbUnit 插入的 ID 和 Hibernate 插入的实体发生冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15569381/

相关文章:

java - 如何将日期参数分配给当前时区的 hibernate 查询?

java - 如何在 Mockito 中测试具有相同参数的调用的特定顺序?

sql-server - 如何为 DbUnit 指定要插入的模式名称?

postgresql - 如何从查询中导出 DBUnit 结果集

java - Spring Test DBUnit 和表架构名称

hibernate - 使用Hibernate 4生成SQL DB创建脚本

hibernate - HQL按集合项属性值之和排序

java - Spring 无法创建 sessonFactory bean

ruby-on-rails - Cucumber/Capybara/Selenium - 设置 cookie

ruby-on-rails - ruby cucumber 测试实践