Подтвердить что ты не робот

Какой тип вы бы нарисовали BigDecimal в Java/Hibernate в MySQL?

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

4b9b3361

Ответ 1

DECIMAL и NUMERIC.

Рекомендуемое сопоставление 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.

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