Hibernate + H2数据库:映射浮动失败

时间:2019-04-18 12:00:52

标签: java mysql spring hibernate h2

我有一个Spring Boot应用程序,该应用程序使用MySQL数据库和Liquibase迁移进行生产。 对于jUnit-Test,我还配置了一个通过Liquibase构建的内存中H2数据库。

我的表包含float列,因此您可能知道行进方向。

启动测试时,成功建立了H2数据库,但是随后启动了Hibernate模式验证,并且遇到以下错误:

org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: wrong column type encountered in column [float_column] in table [table_with_float_column]; found [real (Types#REAL)], but expecting [float (Types#FLOAT)]

从H2文档来看,H2 不知道任何Types#FLOAT 。它只知道Types#REAL(适用于精度值为24的浮点数)和Types#DOUBLE(适用于精度值为25的浮点数)。虽然Types#REAL映射到Java.lang.Float对象上,但是Hibernate的模式验证似乎是一个问题-尽管我对此不太确定。

我已将Hibernate配置为使用org.hibernate.dialect.H2Dialect进行jUnit测试。

就我而言,我在这里有多种选择:

  • 切换到另一个内存数据库
  • 将现有实体float字段转换为double
  • 利用任何人都可以启发我的解决方法
  • 使用目前无法看到的解决方案

您的建议是什么,为什么?

0 个答案:

没有答案