собственный класс генератора в спящем режиме

У меня есть эта часть XML-файла сопоставления спящего режима, и я искал хороший пример того, что означает родной.

<hibernate-mapping>
 <class name="com.hib.Task" table="tasks">
  <id name="id" type="int" column="id" >
   <generator class="native"/>
  </id>

Я знаю, что это связано со свойством уникального идентификатора, но мне бы очень хотелось иметь пример.

Извините за вопрос новичка, я новичок в спящем режиме и программировании в целом :) Спасибо!


person Rimchik    schedule 04.05.2013    source источник


Ответы (2)


Собственный означает, что ваш генератор будет использовать столбцы идентификации или последовательности в соответствии с тем, что поддерживает ваша текущая база данных.

Документы объяснили каждую стратегию здесь

http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/mapping.html#mapping-declaration-id

родной

выбирает идентификатор, последовательность или hilo в зависимости от возможностей базовой базы данных.

назначено

позволяет приложению назначать идентификатор объекту перед вызовом save(). Это стратегия по умолчанию, если элемент не указан.

Например: в Mysql, если у вас есть столбец первичного ключа как auto_increment, база данных будет обновлена ​​с использованием этой стратегии.

person Suresh Atta    schedule 04.05.2013
comment
Назначенный является стратегией по умолчанию для создания основного. Для ключа ссылки.java4s.com/hibernate/generators-in-hibernate - person Ashish Burnwal; 07.02.2018
comment
Прочитайте 3-ю строку, и это может решить, кто здесь чокнутый. - person Ashish Burnwal; 07.02.2018
comment
@AshishBurnwal Согласен с тобой, Ашиш. Извините за ссылку на какой-то случайный онлайн-ресурс. Отредактировано, чтобы указать официальные документы сейчас. Спасибо еще раз. - person Suresh Atta; 07.02.2018

И чтобы завершить то, что сказал Суреш Атта, вы можете назвать последовательность:

<hibernate-mapping>
 <class name="com.hib.Task" table="tasks">
  <id name="id" type="int" column="id" >
   <generator class="native">
     <param name="sequence">s_tasks</param>
   </generator>
  </id>

Таким образом, он будет работать либо для IDENTITY, либо для SEQUENCE увеличенного первичного ключа.

person Thomas de Verdière    schedule 21.11.2014