哪种Postgres类型会映射到hibernate中Float类型的列?
在基于hibernate的列中,哪个postgres列类型会映射到Java浮点类型 我的旧postgres数据库中有float(19),但如果启用了hibernate模式验证,我会收到此错误消息哪种Postgres类型会映射到hibernate中Float类型的列?,hibernate,postgresql,jpa,Hibernate,Postgresql,Jpa,在基于hibernate的列中,哪个postgres列类型会映射到Java浮点类型 我的旧postgres数据库中有float(19),但如果启用了hibernate模式验证,我会收到此错误消息 Wrong column type in realtorprint.templatetype for column height. Found: float8, expected: float4 有什么想法吗?我的列是float(8)而不是float(19)。我可能可以在我们的遗留数据库中改变这一点。
Wrong column type in realtorprint.templatetype for column height.
Found: float8, expected: float4
有什么想法吗?我的列是float(8)而不是float(19)。我可能可以在我们的遗留数据库中改变这一点。hibernate如何将Java类型映射到SQL类型由对应于RDBMS的子类控制。具体使用哪一种可能取决于您的Hibernate和Postgres版本 但我怀疑在大多数情况下,Java float映射到float(4),Java double映射到float(8) 这是开源的,您可以获取代码并检查以确定您的案例中发生了什么
您还可以通过配置来替换自己的方言,尽管这并不合适。(偶尔也适用于错误修复。)我希望您知道使用浮动是个坏主意(在Java和Postgres中都是如此)。由于他们的表现方式,你不一定能收回你投入的东西。使用
BigDecimal
(在Java中)或decimal
(在Postgres中)是一个更好的选择@一匹没有名字的马不是一个普遍的坏主意;它们非常适合存储测量值和其他数量,其中精确表示不如效率和存储大量值的能力重要。不过,将它们用作货币是一个糟糕的想法。我使用了浮点,因为这个宽度/高度列映射到PDF宽度/高度单位,基本上是一个浮点数字。