Я использую Hibernate JPA в моем бэкэнде. Я пишу блок-тест с использованием JUnit и DBUnit для вставки набора данных в базу данных HSQL в памяти.Вставка BigDecimal данных в базу данных тестирования HSQLDB с использованием DbUnit
Мой набор данных содержит:
<order_line order_line_id="1" quantity="2" discount_price="0.3"/>
Какие карты на объект OrderLine Java, где столбец discount_price определяется как:
@Column(name = "discount_price", precision = 12, scale = 2)
private BigDecimal discountPrice;
Однако, когда я запускаю мой тестовый случай, и утверждают, что скидка Возвращаемая цена равна 0,3, утверждение не соответствует действительности и говорит, что сохраненное значение равно 0. Если я изменю discount_price в наборе данных равным 0,9, округляется до 1.
Я проверил, чтобы HSQLDB не выполнял округление, и это определенно не потому, что я могу вставить объект строки заказа с использованием кода Java со значением, например 5.3, и он отлично работает.
Мне кажется, что DBUtils по какой-то причине округляет число, которое я определил. Есть ли способ заставить это не произойти? Может ли кто-нибудь объяснить, почему это может быть сделано?
Спасибо!
Это лучший ответ, он работает для меня. –