为什么Hibernate在点之后将BigDecimals保存为0?

时间:2016-07-12 05:50:58

标签: java hibernate hibernate-mapping

我有简单的专栏:

@Column(name = "MYCOLUMN", precision = 19, scale = 2)
private BigDecimal myColumn;

我想保存例如new BigDecimal("1000000000000000000");,但我实际得到的是1000000000000000000.00,为什么Hibernate有这样的行为?我能以某种方式改变它吗?

3 个答案:

答案 0 :(得分:0)

在你的DB中,这个想存储为double(mysql),因此scale = 2实际上是2级

答案 1 :(得分:0)

使用此scale = 0,然后在小数点后不会有0。

 @Column(name = "MYCOLUMN", precision = 19, scale = 0)
 private BigDecimal myColumn;

答案 2 :(得分:0)

如果你想要在getter方法中处理的大整数而不影响数据库模型

public BigInteger getMycolumn(){ 
   return myColumn.toBigInteger()
}