我在后端使用Hibernate JPA。我正在使用JUnit和DBUnit编写一个单元测试,以将一组数据插入到内存中的HSQL数据库中。使用DbUnit将BigDecimal数据放入HSQLDB测试数据库
我的数据集包含:
<order_line order_line_id="1" quantity="2" discount_price="0.3"/>
映射到其中discount_price列被定义为一个订单行的Java对象:
@Column(name = "discount_price", precision = 12, scale = 2)
private BigDecimal discountPrice;
然而,当我运行我的测试案例,并断言折扣价格返回等于0.3,断言失败并且说存储值为0.如果我将数据集中的discount_price更改为0.9,则它将舍入为1.
我已经检查过,以确保HSQLDB没有做四舍五入,它绝对不是因为我可以插入一个订单行对象使用Java代码与5.3的值,它工作正常。
对我来说,DBUtils似乎是因为某些原因导致我定义的数字四舍五入。有没有办法我可以强制这个不会发生?任何人都可以解释为什么它可能会这样做?
谢谢!
这是最好的答案,它适用于我。 – 2015-03-25 09:42:49