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

Jac*_*nds 7 java unit-testing hibernate

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

mhs*_*ams 7

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

<!-- Drop and re-create the database schema on startup -->
<property name="hbm2ddl.auto">create-drop</property>
Run Code Online (Sandbox Code Playgroud)

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

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

如果您不喜欢在真正的hibernate配置中使用此配置,则可以创建一个hibernate配置以进行单元测试.

  • 这只会在每次运行时重新创建它.这意味着如果你从eclipse运行你的测试,如果单独运行,很多都会失败.至少这是我的经历. (6认同)