Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哪种Postgres类型会映射到hibernate中Float类型的列?_Hibernate_Postgresql_Jpa - Fatal编程技术网

哪种Postgres类型会映射到hibernate中Float类型的列?

哪种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)。我可能可以在我们的遗留数据库中改变这一点。

在基于hibernate的列中,哪个postgres列类型会映射到Java浮点类型

我的旧postgres数据库中有float(19),但如果启用了hibernate模式验证,我会收到此错误消息

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宽度/高度单位,基本上是一个浮点数字。