java - 清除整个数据库(用于使用 Hibernate 进行单元测试)

标签 java unit-testing hibernate

我的单元测试使用 Hibernate 连接到内存中的 HSQLDB 数据库。我希望有一种方法可以在 JUnit 的 TestCase.setUp() 方法中清除和重新创建数据库(包括架构和所有数据的整个数据库)。

最佳答案

您可以配置您的 hibernate 配置文件以强制数据库每次都重新创建您的表和模式。

<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create-drop</property>

hibernate.hbm2ddl.auto 在创建 SessionFactory 时自动验证或将模式 DDL 导出到数据库。使用 create-drop,当显式关闭 SessionFactory 时,将删除数据库模式。

例如验证 |更新 |创建 |创建下降

如果你不喜欢在你真正的 hibernate 配置中有这个配置,你可以创建一个 hibernate 配置用于单元测试目的。

关于java - 清除整个数据库(用于使用 Hibernate 进行单元测试),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3646661/

相关文章:

java - 使用 hibernate 保存具有引用依赖实体的实体

java - 为什么我们在 Spring Hibernate 集成中使用服务类

Java,如何使用 computeIfAbsent computeIfPresent 来实现这个目的?

c# - 单元测试删除,即使在数据库中删除了记录也返回

JavaFX DatePicker 设置日期值的对齐方式

angular - 为 ng-bootstrap modal (NgbModal) [Angular 6] 编写单元测试

node.js - 使用 Jasmine 和 Express 模拟请求对象

java - 为什么我的数据库仅在前两个 jsp 表单提交时更新成功?

Java 空指针异常

java - 使用 Javac/Ant 编译 1 个文件也会编译指定文件中的导入文件/类