Hibernate - отображение столбца BigDecimal для пользовательского диалекта
используя Hibernate в качестве нашего объектно-реляционного отображения, с собственным диалектом для неясной базы данных.
Сущность, которую яm, извлекаемый из этой базы данных, имеет столбец таким образом:
@Column(name = "GROSS_WEIGHT", precision = 9, scale = 3)
private BigDecimal grossWeight;
В базе данных этот столбец определен как числовой с точностью 9 и шкалой 3.
Я вижу SQL, который Hibernate генерирует для извлечения данных, и когда я выполняю тот же запрос с помощью инструмента запросов к базе данных, он возвращает '9,68' для столбца GROSS_WEIGHT.
Однако в сущности, полученной с помощью Hibernate,общий вес' поле содержит значение10'сscale
из 0 иprecision
из 2!
в обычном диалекте I классая использую ямы пытались переопределить следующие типы столбцов:
registerColumnType( Types.DECIMAL, "numeric($p,$s)" );
registerColumnType( Types.DOUBLE, "numeric($p,$s)" );
registerColumnType( Types.NUMERIC, "numeric($p,$s)" );
но он по-прежнему возвращает только (округленное) целое число.
Это работало в другом месте приложения, где мы получаем объекты из Postgres, используя диалект Postgres.
Любая идея, что я должен делать на диалекте, чтобы я мог получить Hibernate, чтобы правильно установить точность / масштаб полученного BigDecimal?