我有一个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
您的建议是什么,为什么?