MySQL/Spring 环境中的 BigDecimal 标度和尾随零

BigDecimal scale and trailing Zeros in MySQL/Spring environment

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

12
543.34
98765.345678
0.000003344332

等所以在我的休眠映射中我这样做了:

@Column(precision = 32, scale = 16)

这让我可以存储我的 BigDecimals 并使用 MathContext.DECIMAL64 进行数学计算。

然而,当我查看 MySQL 数据库时,我看到如下值:

12.0000000000000000
543.3400000000000000
98765.3456780000000000
0.0000033443320000

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

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

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

等知道如何做到这一点吗?

已设法通过在将数据读回 Java 时更正比例来解决此问题。缩放值的处理没有 MySQL 修复。