这是架构验证器的已知限制,请检查HHH-2315。因此,这里有三个选项(实际上是四个),但我想不要取消验证。要么:
在Java级别使用a
float
代替double
-但这可能不是一个选择。org.hibernate.mapping.Table.validateColumns(Dialect dialect, Mapping mapping, Tablemetadata tableInfo)
为这种特殊情况添加补丁以添加特殊条件-这实际上不是一个明智的选择。扩展
org.hibernate.dialect.Oracle10gDialect
使其float
用于SQL类型DOUBLE
public class MyOracle10gDialect extends Oracle10gDialect {public MyOracle10gDialect() { super();}protected void registerNumericTypeMappings() { super.registerNumericTypeMappings(); registerColumnType( Types.DOUBLE, "float" );}}
后面的选项看似安全,但是需要进行一些测试,以查看它是否不会带来任何回归。我没有查看Oracle的JDBC驱动程序代码,因此无法说出驱动程序级别的方式
float和
doubleprecision不同之处。



