2014-02-11 3 views
0

Это связано с Hibernate Framework. Какие стратегии генерации идентификаторов поддерживаются MySQL? Через документацию спящего режима я узнал, что он не поддерживает класс «sequence».Стратегия формирования идентификатора, поддерживаемая MySQL

Я могу успешно сохранить объект, когда я использую классы «назначено» и «увеличивать».

Но использование «identity» приводит к исключению sql, вызванному «Идентификатором поля (свойство, которое отображается в первичный ключ в таблице), не имеет значения по умолчанию». Нужно ли присваивать значение по умолчанию перед использованием класса «identity»?

ответ

0

Существует четыре стратегии.

@GeneratedValue (стратегия = GenerationType.TABLE)

  1. АВТО - с auto_increment
  2. ИДЕНТИФИКАЦИЯ - с auto_increment
  3. SEQUENCE - не поддерживается
  4. TABLE - с hibernate_sequences TABLE

Протестировано непосредственно с MYSQL5.2

+0

Я использовал диалоги mysql5 и установил AUTO как стратегию. Но hibernate создает таблицу (hibernate5, MySQL5Dialect, MarianDB)? –

0

Чтобы использовать стратегию идентичности, вы должны использовать auto_increment, что-то вроде

создать таблицу 'table_name' ('ID' INT NOT NULL AUTO_INCREMENT, ...... ...)

Это должно быть сделано.

Смежные вопросы