H2内存数据库:不可选择的数据

时间:2016-03-14 15:23:00

标签: java h2

我已经使用持久数据存储近一年了,连接字符串

jdbc:h2:gpfp;MV_STORE=FALSE;TRACE_LEVEL_FILE=0;FILE_LOCK=NO

并运行单元测试;一切都很好。最近,我决定尝试完整的内存模式而不是仅仅使用内存表。我使用H2控制台连接到我的数据库并执行

SCRIPT TO 'c:\temp\mpfp.db'

生成一个备份,我将使用。

加载到内存数据库

RUNSCRIPT FROM 'c:\temp\mpfp.db'

这似乎运作良好 - 我生成一个内存数据库,其中包含我需要的表和内容;我在控制台和我的应用程序中测试了这个。但是,当我运行单元测试时,我注意到单个测试现在失败了(确切地说是19个中的第15个)...我在列上执行简单选择并且db引擎无法检索结果,但如果我选择整个数据集并滚动浏览,我可以找到该值。我在手动测试中确认这不是一个区分大小写的问题。

这里发生了什么?我检查了数据库中的数据以及SCRIPT TO生成的文件中的数据。我没有改变任何单元测试只是数据库组成;记忆与持久性。

可能有助于知道生成原始表的DDL对每个表使用CREATE MEMORY TABLE而我使用H2版本1.4.178 ...这可能是MV_STORE的问题吗?我在持久性存储中明确地将其设置为false,因为我遇到了类似的问题,我没有得到结果,但是将MV_STORE = FALSE附加到jdbc:h2:mem:...似乎没有做任何事情。我还将JVM内存增加到2g和4g作为另一个测试,结果仍然是相同的。

0 个答案:

没有答案