我以两种不同的方式测试我的应用。
问题可能是什么原因?
答案 0 :(得分:2)
默认情况下配置与内存H2 DB的连接时会出现这种情况,例如:dbc:h2:mem:test
在这种情况下,DB存在,直到他至少有一个活动连接。当最后一个连接关闭时,DB也关闭。取决于您使用/重新使用连接(可能合并)和运行测试延迟,您可以获得竞赛条件并获得意外结果。
可以使用连接参数DB_CLOSE_DELAY=-1
进行修复,只有当VM死亡时,db才会关闭。
这是helphul链接http://www.h2database.com/html/features.html#closing_a_database
答案 1 :(得分:0)
我知道你回答你的问题为时已晚。可能这可能会有所帮助。
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.h2.Driver" />
<property name="url" value="jdbc:h2:mem:testdb;INIT=create schema if not exists test\;runscript from 'classpath:scripts/sample.sql';**DB_CLOSE_DELAY=-1**"/>
除了尝试添加以下属性
<prop key="hibernate.hbm2ddl.auto">create</prop>
<prop key="hibernate.connection.release_mode">auto</prop>
每次服务器启动时都会创建模式,完成后会删除。