Java H2内存数据库:不可选择的数据
我使用持久数据存储已经将近一年了,使用字符串连接 jdbc:h2:gpfp;MV_存储=假;跟踪级文件=0;文件锁定=否 和运行单元测试;一切都很好。最近,我决定尝试完整的内存模式,而不仅仅是使用内存表。我使用H2控制台连接到数据库并执行Java H2内存数据库:不可选择的数据,java,h2,Java,H2,我使用持久数据存储已经将近一年了,使用字符串连接 jdbc:h2:gpfp;MV_存储=假;跟踪级文件=0;文件锁定=否 和运行单元测试;一切都很好。最近,我决定尝试完整的内存模式,而不仅仅是使用内存表。我使用H2控制台连接到数据库并执行 脚本到“c:\temp\mpfp.db” 要生成备份,我将使用加载到内存中的数据库 来自“c:\temp\mpfp.db”的运行脚本 这似乎工作得很好,因为我生成了一个内存中的数据库,其中包含我需要的表和内容;我在控制台和应用程序中对此进行了测试。然而,当我运
脚本到“c:\temp\mpfp.db”
要生成备份,我将使用加载到内存中的数据库
来自“c:\temp\mpfp.db”的运行脚本
这似乎工作得很好,因为我生成了一个内存中的数据库,其中包含我需要的表和内容;我在控制台和应用程序中对此进行了测试。然而,当我运行单元测试时,我注意到现在有一个测试失败了(确切地说是19个测试中的第15个)。。。我正在对列执行一个简单的选择,db引擎无法检索结果,但是如果我选择整个数据集并滚动浏览,我可以找到值。我已经确认,在我的手动测试中,这不是一个区分大小写的问题
这里发生了什么事?我将数据库和生成的文件中的数据从脚本检查到。我没有更改任何单元测试,只是更改了数据库的组成;内存与持久性
知道生成原始表的DDL为每个表使用CREATEMEMORYTABLE可能会有所帮助,我使用的是H2版本1.4.178。。。这可能是MV_商店的问题吗?我在持久性存储中显式地将其设置为false,因为我遇到了一个类似的问题,没有得到结果,但是在jdbc:h2:mem:…中附加了MV_store=false。。。似乎什么也没做。作为另一个测试,我还将JVM内存提升到2g和4g,结果仍然相同。我将h2依赖项恢复到1.3.176版本,这似乎不是问题。还有其他人有类似的发展问题吗?