我有一个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
等。任何想法如何做到这一点?
答案 0 :(得分:0)
通过在将数据读回Java时更正比例,设法解决了这个问题。处理缩放值没有MySQL修复。