java – h2数据库测试maven

使用H2数据库1.3.169测试java应用程序
我正在以两种不同的方式测试我的应用程序.
>内存数据库是在与应用程序不同的进程中创建的.我启动H2控制台并从脚本创建数据库.所有测试都通过.
>应用程序启动时,与应用程序在同一进程中创建内存数据库.所有测试均通过Intellij IDEA 11.3.使用Maven 2测试某些测试失败(创建,更新,删除一个实体,预期数据集与结果不匹配).似乎数据库没有更新.它不会每次都发生,有时构建成功.所有测试都经过验证,所有测试均适用于Oracle和DB2.
可能是问题的原因是什么?
解决方法:
默认情况下配置与内存H2 DB的连接时会出现这种情况,例如:dbc:h2:mem:test
在这种情况下,DB存在,直到他至少有一个活动连接.当最后一个连接关闭时,DB也关闭.取决于您使用/重新使用连接(可能合并)和运行测试延迟,您可以获得比赛条件并获得意外结果.
它可以通过连接参数DB_CLOSE_DELAY = -1来修复,这意味着只有当VM死亡时才关闭db.
这是helphul link http://www.h2database.com/html/features.html#closing_a_database