MySQL / Spring环境中的BigDecimal规模和尾随零

时间:2015-02-19 05:52:08

标签: mysql json spring hibernate jackson

我有一个Spring / Hibernate / MySQL设置,我需要在数据库中存储BigDecimals。 BigDecimals的值可以是0到16个小数位。即以下所有都是有效值:

12
543.34
98765.345678
0.000003344332

等。所以在我的hibernate映射中我做到了这一点:

@Column(precision = 32, scale = 16)

这允许我存储我的BigDecimals并使用MathContext.DECIMAL64进行数学计算。

然而,当我查看MySQL数据库时,我看到这样的值:

12.0000000000000000
543.3400000000000000
98765.3456780000000000
0.0000033443320000

当我检索它们时,BigDecimals的缩放比例均为16,当我使用Spring的Jackson Object Mapper将它们序列化为JSON时,它们都填充了尾随零。

我想要的是以正确的比例从数据库中获取值。即。

12              -> scale 0
543.34          -> scale 2
98765.345678    -> scale 6
0.000003344332  -> scale 12

等。任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:0)

通过在将数据读回Java时更正比例,设法解决了这个问题。处理缩放值没有MySQL修复。