Точность BigDecimal не сохраняется с аннотациями JPA
Я использую javax.persistence API и Hibernate для создания аннотаций и сохранения сущностей и их атрибутов в базе данных Oracle 11g Express.
У меня есть следующий атрибут в сущности:
@Column(precision = 12, scale = 9)
private BigDecimal weightedScore;
Цель состоит в том, чтобы сохранить десятичное значение с максимум 12 цифрами и максимум 9 из этих цифр справа от десятичного знака.
После расчетаweightedScore
результат 0.1234, но как только я фиксирую сущность с базой данных Oracle, значение отображается как 0.12.
Я могу убедиться в этом, используя объект EntityManager для запроса записи или просматривая его непосредственно в интерфейсе Oracle Application Express (Apex) в веб-браузере.
Как я должен аннотировать свой атрибут BigDecimal, чтобы точность сохранялась правильно?
Примечание: мы используем базу данных HSQL в памяти для выполнения наших модульных тестов, и она не испытывает проблемы с недостаточной точностью, с или без@Column
аннотаций.
Обновить:
Глядя на описание таблицы, определениеweightedScore
столбецNUMBER(19, 2)
, Я также попытался изменить аннотацию на@Column(columnDefinition="Number(12, 9)")
, но это никак не повлияло. Кто-нибудь знает, почему Oracle не отвечает на эти аннотации?