我在後端使用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