Точность 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или без нее.

Обновление:

Глядя на описание таблицы, определение столбца weightedScoreNUMBER(19, 2). Теперь я также попытался изменить аннотацию на @Column(columnDefinition="Number(12, 9)"), но это не дало никакого эффекта.Кто-нибудь знает, почему Oracle не отвечает на эти аннотации?

8
задан David Kaczynski 11 June 2012 в 14:04
поделиться