有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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引擎无法检索结果,但是如果我选择整个数据集并滚动浏览,我可以找到值。我已经确认,在我的手动测试中,这不是一个区分大小写的问题

这里发生了什么?我从脚本到脚本检查了数据库和生成的文件中的数据。我没有改变任何单元测试,只是改变了数据库的组成;记忆vs持久

知道生成原始表的DDL为每个表使用CREATE MEMORY TABLE可能会有所帮助,我使用的是H2版本1.4.178。。。这可能是MV_商店的问题吗?在持久性存储中,我显式地将其设置为false,因为我遇到了一个类似的问题,没有得到结果,但在jdbc:h2:mem:。。。似乎什么都没做。作为另一个测试,我还将JVM内存提升到2g和4g,结果仍然是一样的


共 (0) 个答案