Мне нужно отобразить BigDecimal
в JPA:
@Column(name = "price", precision = 16, scale = 4)
private BigDecimal price;
Точность и масштаб также правильно настроены в базе данных.
Однако с данным масштабом всезначения хранятся со шкалой 4, даже если для значения нужна только шкала 2. И если, например, я использую число типа:
12.12345678
, то это значение усекается до
12.1234
даже точность позволила бы увеличить шкалу до 4 (поскольку разрешенная точность равна 16, а используемая точность равна 6, следовательно, Hibernate может хранить на 10 цифр больше и использовать эти цифры даже для необходимой более высокой шкалы).
Есть ли способ, при котором гибернация адаптирует масштаб в зависимости от фактического масштаба и его точности вместо жестко закодированного масштаба? Если я сопоставлю BigDecimal без масштаба:
@Column(name = "price", precision = 16)
private BigDecimal price;
, тогда Hibernate по умолчанию будет 2. Есть ли что-то вроде гибкая шкала в зависимости от максимально доступного precision
в JPA? Потому что внутренне BigDecimal делает именно так: если масштаб не задан (по умолчанию), тогда java адаптирует необходимый масштаб в соответствии с доступной точностью.