при извлечении поля двойного типа из базы данных Oracle автоматически добавляет .0 к значению - PullRequest
0 голосов
/ 30 мая 2018

Я использую JPA для включения Oracle DB в весеннюю загрузку.У меня есть объект, в котором поле определено следующим образом:

 @Column(name = "TOTAL_PREMIUM", precision = 12, scale = 2)
private double totalPremium = 0;

В БД сохраненное значение, которое я вижу, выглядит следующим образом enter image description here:

Но когда я пытаюсь получить это значение, используя JPARepository:

Quotes quotes = quoteRepo.findOne(quoteID);
quotes.getTotalPremium()

Это дает 2,0, 1348,0 вот так, Это своего рода несоответствие для меня.

Есть ли какой-нибудь способ, которым я могу получить все, что сохранено, т.е. значение должно быть 2, 1348

Если оно сохранено с некоторым десятичным значением, например 1389.48, то оно должно вернуть мне 1389.48, если я сохраню 1389тогда он должен вернуть 1389.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 30 мая 2018

Ваш столбец сопоставлен с двойным типом:

@Column(name = "TOTAL_PREMIUM", precision = 12, scale = 2)
private double totalPremium = 0;

Здесь вы теряете любое количество концевых нулей, записанных в базе данных, потому что если в базе данных есть 2.000 или 2.0 или 2 в коде Java, вы получитето же самое двойное значение 2.

Так что если вам нужно сравнить его со строкой позже, вам нужно отобразить тот totalPremium в строку в вашей сущности и сравнить строки.Или проанализируйте двойное значение из строки, которую вы сравниваете, и сравните два двойных значения.Я думаю, что вы должны сделать последнее, потому что если вы сравниваете числа, вы должны сравнивать их математическим способом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...