gpt4 book ai didi

java - 如何在 Hibernate 中映射 BigDecimal,以便返回与输入时相同的比例?

转载 作者:搜寻专家 更新时间:2023-11-01 03:56:55 25 4
gpt4 key购买 nike

在 Java 中,new BigDecimal("1.0") != new BigDecimal("1.00")scale matters .

然而,这显然不适用于 Hibernate/SQL Server。如果我将 BigDecimal 的比例设置为特定值,通过 Hibernate 将 BigDecimal 保存到数据库,然后重新膨胀我的对象,我会得到一个不同比例的 BigDecimal。

例如,值 1.00 返回为 1.000000,我假设是因为我们将 BigDecimals 映射到定义为 NUMERIC(19,6) 的列。我不能只将列定义为所需的比例,因为我需要在同一列中存储美元和日元值(例如)。为了外部报告工具的好处,我们需要在数据库中将 BigDecimals 表示为数字类型。

是否存在“正确”映射 BigDecimal 的 Hibernate UserType,还是我必须自己编写?

最佳答案

仅供引用,我可以告诉您,从数据库返回的 BigDecimal 的创建是由专有 JDBC 驱动程序实现的特定于数据库的“ResultSet”子类的“getBigDecimal”方法完成的。

我通过使用调试器单步调试 Hibernate 源代码发现了这一点,同时试图找到我自己的 question 的答案。 .

关于java - 如何在 Hibernate 中映射 BigDecimal,以便返回与输入时相同的比例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6544232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com