简单可靠的内存数据库,用于支持 JPA 的快速 Java 集成测试

如果我使用内存中数据库而不是PostgreSQL,我的集成测试将运行得更快。我使用JPA(Hibernate),我需要一个内存数据库,它易于切换到使用JPA,易于设置且可靠。它需要相当广泛地支持JPA和Hibernate(或者反之亦然),因为我不希望采用我的数据访问代码进行测试。

根据上述要求,哪个数据库是最佳选择?


答案 1

对于集成测试,我现在使用H2(来自HSQLDB的原始作者),我更喜欢HSQLDB。它更快(我希望我的测试尽可能快),它具有一些不错的功能,例如兼容性模式,开发团队响应非常迅速(而HSQLDB直到最近才保持休眠状态多年)。


答案 2

我一直在使用HSQLDB in-memory来集成测试Java中的JPA / Hibernate持久性。启动速度很快,不需要任何特殊设置。

到目前为止,我看到的将HSQLDB与Hibernate一起使用的唯一问题是需要将批大小设置为0,但这可能与旧版本有关。我会挖一下,看看我是否能找到这个问题的细节。

Derby现在支持内存模式,它不再被标记为实验性。


推荐