首页 > 解决方案 > 更正 Oracle 和 PostgreSQL for Java(Hibernate) 浮点类型中的列类型

问题描述

我需要在 Oracle 和 PostgreSQL 中为存储浮点值创建列。

@Column(name = "SOME_VALUE")
private Float someValue;

如何在两个库中创建列以便 Hibernate 正常映射?

FLOAT我在 Oracle(并且它工作)和BIGINTPostgresSQL中尝试了该类型。

但我对自己的选择感到困惑。我想要两个数据库的最正确类型。

标签: javaoraclepostgresqlhibernate

解决方案


对于甲骨文:

用于NUMBER任意精度(如果你不能承受舍入误差,例如用钱)或BINARY_DOUBLE用于更快的处理,如果舍入误差不那么重要,比如温度测量。

对于 PostgreSQL:

PostgreSQL 中对应的数据类型是numericdouble precision

FLOATNUMBER在 Oracle 中与二进制数字的精度限制相同,而bigint在 PostgresSQL 中则用于大整数。


推荐阅读