Класс Entity с BigDecimal и не Long - сгенерированы инструменты Hibernate

Класс сущностей с BigDecimal и не Long

Мои классы сущностей созданы с помощью инструментов Hibernate. К сожалению, некоторые «длинные» значения становятся числами «BigDecimal» (столбец: ВОЗРАСТ, ДАТА РОЖДЕНИЯ), но не все из них (столбец: ID)!

Почему это происходит и как мне это исправить?

Таблица в моей базе данных Oracle: User

    Column    -   Type   - Decimal Digits - Column Sizes
    ----------+----------+----------------+-------------
    ID        - NUMBER   -     0          - 10
    AGE       - NUMBER   -     0          - 38
    BIRTHDATE - NUMBER   -     0          - 38
    FIRSTNAME - VARCHAR2 -   <null>       - 32

Использование инструментов Hibernate для создания классов сущностей (POJO)

@Id
@Column(name = "ID", unique = true, nullable = false, precision = 10, scale = 0)
private long id;

@Column(name = "AGE", precision = 38, scale = 0)
private BigDecimal age;

@Column(name = "BIRTHDATE", precision = 38, scale = 0)
private BigDecimal birthdate;

@Column(name = "FIRSTNAME", length = 32)
private String firstname;

Спасибо!


person Dimitri Dewaele    schedule 01.08.2013    source источник
comment
Я думаю, это потому, что ваши столбцы AGE и BRITHDATE имеют размер 38 столбцов, максимальное число, которое может иметь «длинный», составляет 9 223 372 036 854 775 807, что составляет 19 размеров.   -  person JavaKB    schedule 01.08.2013


Ответы (1)


Инструменты Hibernate можно настроить для настройки сопоставления типов. Укажите в reveng.xml все сопоставления (см. скриншот). Преобразуйте любой тип JDBC в любой тип Hibernate и снова запустите генератор.

Конфигурация сопоставления reveng.xml:

конфигурация отображения reveng.xml

Используйте этот reveng.xml в своем генераторе:

используйте этот reveng.xml в своем генераторе

person Dimitri Dewaele    schedule 02.08.2013