2015-04-23 2 views
2

Я вижу исключение, когда пытаюсь сохранить значение сущности с свойством, имеющим значение new BigDecimal ("0.0000001"), в столбец таблицы Oracle, который имеет тип данных Номер (10,7). Сохраняются другие значения с одинаковым масштабом, например новый BigDecimal («0.0000012»).Исключение сохранения Java BigDecimal 0.0000001 to oracle using JPA/Hibernate

Ниже исключение я см

13: 56: 56561 WARN [JDBCExceptionReporter] Ошибка SQL: 1438, SQLState: 22003 13: 56: 56561 ОШИБКА [JDBCExceptionReporter] ОРА-01438: значение больше заданной точностью разрешено для этой колонки

+0

Это известно как ** не-Представимость 0,1 ** HTTP: //en.wikiped ia.org/wiki/Floating_point#Accuracy_problems – erencan

+0

Но значение с шестью знаками после запятой сохраняется без проблем BigDecimal («0.000001») – user68883

+0

Я не верю, что значение 0.0000001 является причиной вашей проблемы. Ключевое слово в вашем сообщении об ошибке ** больше **: 0.0000001 не слишком велико для вашего столбца, поэтому это означает, что в вашей таблице что-то происходит в вашей таблице, о котором вы нам не говорили. Например, имеет ли в вашей таблице триггер, который вычисляет обратную величину в столбце? Измените свой вопрос, чтобы включить полную статистику стека исключения, которое вы видите. –

ответ

0

все это работает, может быть ошибка вызвана какой-либо другой причине

drop table test; 

Create table test (
BigDecimal Number (10,7) 
); 

insert into test values (0.0000001); 
insert into test values (0.0000012); 
insert into test values (101); 
insert into test values (102);