В Java new BigDecimal("1.0") != new BigDecimal("1.00")
имеет значение масштаб.
Однако это, по-видимому, неверно для Hibernate/SQL Server. Если я установлю шкалу для BigDecimal на определенное значение, сохраню BigDecimal в базе данных через Hibernate, а затем повторно накачаю свой объект, я верну BigDecimal с другим масштабом.
Например, значение 1,00 возвращается как 1,000000, я полагаю, потому что мы сопоставляем BigDecimals со столбцом, определенным как NUMERIC(19,6)
. Я не могу просто определить столбец как требуемый масштаб, так как мне нужно хранить значения доллара и иены (например) в одном столбце. Нам нужно представить BigDecimals как числовые типы в базе данных для использования внешних инструментов отчетности.
Существует ли пользовательский тип Hibernate, который «правильно» отображает BigDecimal, или мне нужно написать свой собственный?