【发布时间】:2013-01-11 23:03:52
【问题描述】:
什么 postgres 列类型会映射到基于 hibernate 的列中的 Java Float 类型?
我的旧 postgres 数据库中有 float(19),但如果启用了休眠模式验证,我会收到此错误消息。
Wrong column type in realtorprint.templatetype for column height.
Found: float8, expected: float4
有什么想法吗?我的列是 float(8) 而不是 float(19) 我可能可以在我们的旧数据库中进行更改。
【问题讨论】:
-
我希望您知道使用浮点数是一个坏主意(在 Java 和 Postgres 中)。由于它们的表示方式,您不一定要取回您输入的内容。使用
BigDecimal(在Java 中)或decimal(在Postgres 中)是更好的选择。 floating-point-gui.de -
@a_horse_with_no_name 这不是一个普遍的坏主意;它们非常适合存储测量值和其他数量,其中精确表示不如效率重要,并且能够存储大量值范围内的值。不过,将它们用作货币是一个糟糕的主意。
-
我使用了一个浮点数,因为这个宽度/高度列映射到一个 PDF 宽度/高度单位,它基本上是一个浮点数。
标签: hibernate postgresql jpa