基本上这个想法是为两个不同的底层数据库使用相同的休眠映射文件。在生产中,底层数据库是 MySQL5,出于测试目的,我想使用 Apache Derby——以避免为测试目的设置和维护各种 MySQL 数据库。
我希望只需切换数据源的驱动程序并更改一些参数就可以完成这项工作,但我已经遇到了一些小困难。所以实际上有两个问题。第一个具体问题是:
I. 如果数据类型在 MySQL 中可用但在 Derby 中不可用,是否可以告诉 Derby 使用哪种数据类型。映射如下:
<property name="about">
<column name="`about`" not-null="false" sql-type="text"></column>
</property>
Derby 不知道 sql 类型的“文本”,因此它拒绝创建表。它是 Derby 10.4.2.0 和 Hibernate 3.2.6。顺便一提。
二、您在测试和生产中使用两个不同的数据库有什么经验?我知道有一些缺点,例如您无法测试存储过程或特定于数据库的查询 - 但另一方面它使测试更容易和更快(如果您最终让它运行)。你怎么看?