从缓存中获取数据时,零将丢失

时间:2018-08-02 15:38:57

标签: java hibernate caching spring-data-jpa ehcache

我有一个存储在数据库中的实体

public class data {
    @Column(name = "id")
    final String id;
    @Column(name = "length")
    final BigDecimal length;
}

当您从缓存反序列化并检索数据时,我会丢失零

预期:

data{id=3, length=6.00}

实际

data{id=3, length=6}

2 个答案:

答案 0 :(得分:1)

是的。如果您的列指定了足够的精度,则数据库将以正确的精度保存数字。因此decimal(14,4)最多可以保留4位小数。

但是,它不会记住原始精度。小数位数。如果您真的很在意它,那么您也需要存储它。或将您的号码存储为字符串。

这个问题实际上是this one的副本。

答案 1 :(得分:1)

尝试设置@Column批注的precisionscale属性。

请参阅:https://docs.jboss.org/hibernate/jpa/2.1/api/javax/persistence/Column.html