java - 大多数类似 MySQL 的与 hibernate 兼容的内存数据库?

标签 java mysql hibernate unit-testing h2

对于我正在从事的项目(Spring/struts 2/hibernate),我们决定使用 h2 对生产商店的 MySQL 进行单元测试,并在 liquibase 中管理该方案,这是非常标准的票价,但我们仍然存在这个问题遇到的是 h2 和 MySQL 在很多方面都不同,例如它们如何处理时间戳和触发器。已经到了我开始后悔使用 h2 的地步,因为不匹配导致的额外麻烦开始超过它的好处。我的问题是,是否还有其他内存/本地文件数据库的行为更像 MySQL?显然,对于集成测试,我们仍将使用 MySQL,但能够进行单元测试,而无需将 liquibase 文件变成一个巨大的 hack,也不必确保本地 MySQL 数据库正在运行,这会很好。

最佳答案

我不认为还有比 H2 更兼容 MySQL 的内存 Java 数据库。如果您有很多代码只适用于 MySQL,那么您可能也应该使用 MySQL 进行测试。

请注意,将来很难切换到另一个数据库。过度依赖一种产品的功能将导致 "vendor lock in" .如果是 MySQL,至少你可以选择切换到 MariaDB ,所以还算不错。

关于java - 大多数类似 MySQL 的与 hibernate 兼容的内存数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17630545/

相关文章:

java - 重复方法

java - Java 中 POJO 的映射器

mysql - 使用 Hibernate native 查询插入不适用于 java.util.Date

java - 线程 "main"javax.persistence.RollbackException : Transaction marked as rollbackOnly 中出现异常

java - 如何合并两个 equals() 但不相同的独立实体?

mysql - @版本还是触发器?

java - 如何为在 Java 7 中运行的 Tomcat 7 添加 AES-GCM 支持

java - JPA 1.0 Hibernate & Derby HashMap 与 Enum 键用法

mysql - 如何根据同一个表中的实例获取结果集?

php - 如何将格式化的textarea文本保存到MySQL并再次加载?