Какой тип вы бы отобразили BigDecimal в Java / Hibernate в MySQL? - PullRequest
37 голосов
/ 26 сентября 2011

После прохождения кода ошибки предыдущей разработки я понял, что мне нужно переместить все основанные на деньгах столбцы, чтобы не использовать математические вычисления с плавающей запятой.На стороне Java это означает использование BigDecimal, но при использовании Hibernate / JPA и MySQL 5 какой тип данных MySQL будет подходящим для создания этого столбца?

1 Ответ

43 голосов
/ 26 сентября 2011

ЦЕННЫЕ и ЦИФРОВЫЕ.

Рекомендуемое отображение Java для типов DECIMAL и NUMERIC - java.math.BigDecimal.Тип java.math.BigDecimal предоставляет математические операции, позволяющие добавлять, вычитать, умножать и делить типы BigDecimal на другие типы BigDecimal, целочисленные типы и типы с плавающей запятой.

Метод, рекомендуемый для извлеченияЗначения DECIMAL и NUMERIC - это ResultSet.getBigDecimal.JDBC также разрешает доступ к этим типам SQL в виде простых строк или массивов char.Таким образом, Java-программисты могут использовать getString для получения результата DECIMAL или NUMERIC.Однако это делает общий случай, когда DECIMAL или NUMERIC используются для значений валюты, довольно неудобно, так как это означает, что разработчики приложений должны выполнять математические операции над строками.Также возможно получить эти типы SQL как любой из числовых типов Java.

Посмотрите здесь для получения дополнительной информации.

...