用spring破坏h2数据库

时间:2016-09-08 13:08:56

标签: java spring jpa h2

我在springcontext中使用H2数据库,实际上它是一个服务:

 applicationContext = new ClassPathXmlApplicationContext("/Spring/applicationContext.xml");

applicationContext正在加载配置为h2数据库和jpatransactionmanager注入到bean中:

@PersistenceContext
protected EntityManager em;

我的处理结束后我正在((ConfigurableApplicationContext) applicationContext).close();关闭我的applicationContext但是如果我的进程再次运行,则加载applicationContext并且H2数据库已经存在!

<property name="url" value="jdbc:h2:mem:test;DB_CLOSE_DELAY=10" />

我已经把DB_CLOSE_DELAY = 10放在10秒后关闭我的h2数据库,当所有连接停止时,但我不确定所有连接是否正确关闭:(

如何强制我的h2数据库被销毁?

请记住,我有一个spring应用程序,并在其中加载一个新的Spring ApplicationContext以实现内存作业,并且在完成进程后我想清理所有(applicationcontext,database ...)

我已经使用DB_CLOSE_DELAY=-1进行了测试但是如果我这样做的话,当我得到一个dao时,注入的entitymanager正在为这个DAO工作,但是当我进入下一个DAO时,我的数据库是从划痕和所有数据丢失......这就是为什么我把db_close_delay = -1

也许我需要找到这个问题来删除db_close_delay,如何在没有重新创建数据库的情况下进入DAO和另一个?

任何帮助将不胜感激。

0 个答案:

没有答案