Тип гибернации, используемый для отображения java.lang.Double - PullRequest
2 голосов
/ 15 сентября 2010

Я использую «double» в файлах Hibernate .hbm.xml, и когда я генерирую классы с помощью Hibernate Tool, я получаю свойство class, имеющее тип примитива double. Я хочу, чтобы это свойство было типом Java-оболочки Double. Как мне этого добиться? Если я изменю это вручную в моих классах, это вызовет какие-либо проблемы в спящем режиме?

Спасибо

Ответы [ 3 ]

1 голос
/ 16 сентября 2010

Я использую "double" в файлах Hibernate .hbm.xml, и когда я генерирую классы с помощью Hibernate Tool, я получаю свойство class, имеющее тип примитива double. Я хочу, чтобы это свойство было типом Java-оболочки Double. Как мне этого добиться?

Является ли свойство обнуляемым в отображении hbm.xml? Если это так, вы должны получить Double.

Если вы не можете изменить отображение, вы можете переопределить поведение по умолчанию:

  • переопределить столбец, в частности, в reveng.xml
  • используйте type-mapping и not-null, установленный на false, для обработки всех столбцов
0 голосов
/ 12 июля 2015

Если вы можете добавить приведенную ниже инструкцию под отображение типа в hibernate.reveng.xml, то ваши pojos будут генерироваться с двойным типом как java.lang.Double.

<sql-type jdbc-type="DOUBLE"  not-null="false" hibernate-type="double" /> 

Или

, если вы можете добавить not-null = "false" в файлы hbm, которые также решают вашу проблему.

<property name="salary" type="double">
            <column name="SALARY"  not-null="false" />
        </property>
0 голосов
/ 15 сентября 2010

Проблема может возникнуть только в том случае, если ваше свойство равно нулю, а столбец объявлен как не нулевой Поэтому я бы посоветовал вам всегда инициализировать его.

...