什么postgres列类型将映射到基于hibernate的列中的Java Float类型?
我在我的遗留postgres数据库中有float(19)但是如果启用了hibernate架构验证,我会收到此错误消息。
Wrong column type in realtorprint.templatetype for column height.
Found: float8, expected: float4
有什么想法吗?我的列是float(8)而不是float(19)我可能会在遗留数据库中更改此内容。
答案 0 :(得分:5)
hibernate如何将Java类型映射到SQL类型由与您的RDBMS对应的Dialect子类控制。确切地说,您使用哪一个可能取决于您的Hibernate和Postgres的版本。
但我怀疑在大多数情况下,Java float映射到float(4),Java double映射到float(8)。
这是开源的,您可以获取代码并检查以确定您的案例中发生了什么。
您也可以通过配置替换自己的方言,但这很少适合。 (它偶尔适用于错误修正。)