2012-07-02 42 views
2

我在內存數據庫中使用Play Framework 1.2.4與H2。通過在Play框架中保存BigDecimal來降低精度

public void aBigDecimalSavingTest() { 
    BigDecimalEntity bde = new BigDecimalEntity(); 
    bde.bd= new BigDecimal("0.225"); 
    System.out.println(bde.bd); // print 0.225 
    bde.save(); 

    bde = BigDecimalEntity.findById(Long.valueOf("1")); 
    System.out.println(bde.bd); // print 0.23 
} 

這個問題從哪裏來? Play框架?數據庫支持? JPA缺少註釋? ...

謝謝!

+0

什麼是H2的相應列的類型? – iwalktheline

+0

在H2控制檯中,BigDecimal字段默認映射到DECIMAL(19,2) – fdelsert

回答

6

您可能需要指定在實體精度:

@Column(precision = 16, scale = 4) 
BigDecimal bigdec;