|
|
1
3
问题1-不要指定SQL类型;请使用 Hibernate type 而是:
然后,您可以扩展Hibernate提供的Derby(或MySQL)方言,以根据(un)指定的长度将该类型映射到适当的DB类型。以mysqlstandian为例,它将字符串类型映射到
问题2-您的意思是使用不同的数据库 发展 生产呢?因为使用不同的数据库 测试 而制作就像玩一个装满子弹的俄罗斯轮盘赌——你不会赢的——) 您始终需要测试所有适用的部署配置。如果您确实需要同时支持这两个方面,那么使用不同的DBS进行开发和生产并不是一个糟糕的方法,因为它有助于尽早发现可移植性问题。 |
|
|
2
1
在我看来,在测试中使用不同类型的数据库的主要原因是,在不可能伪造或模拟数据库的情况下,可以更快地进行单元测试(尽管在可以的情况下,应该进行后者)。请注意,应该有一个临时会话,在该会话中,测试可以针对生产类型的数据库运行,以确保没有对测试数据库进行编码。它还强制您编写通用数据库的代码——有时这是一个好主意,有时不是。 显然,如果您需要一个特定于数据库的函数(存储过程甚至特殊类型),您应该使用相同的类型。 在mysql的情况下,可以在一个测试中将表设置为 stored in memory . 如果您可能需要MySQL特定的项目,这是一个选项。如果目标是数据库通用性,那么在开发/低级测试中使用不同的数据库是一件好事。 |
|
|
3
1
|
|
|
4
0
根据我的经验,测试的数据库实现越多,就越快找到任何意外依赖于某个不可跨数据库移植的东西的地方。 如果Derby使您的测试变得更快、更容易,那么这是一个很好的结果,因为更快、更容易的测试鼓励更多的测试。 我认为Derby是一个很好的测试方法,因为Derby很难遵守SQL标准,并且只支持标准中指定的语法和行为,因此这有助于确保避免使用非标准数据库功能。 但我同意,当您接近部署应用程序时,您需要使用尽可能接近预期部署配置的配置来测试它。 |
|
|
Gero Mendy · 如何为一个类分配兵变的结果。查询 2 年前 |
|
Hamvy B · 替换不推荐的hibernate方法 2 年前 |
|
Martin Pfeffer · Spring Boot JPA 2 年前 |
|
|
denstran · 休眠未生成正确的id 3 年前 |
|
|
Frank · 忽略/跳过Hibernate架构验证中的特定字段 3 年前 |