org.hibernate.HibernateException: база данных не вернула нативно сгенерированное значение идентификатора - PullRequest
22 голосов
/ 24 августа 2011

Я получаю это исключение из Hibernate

строительная сессия фабрики
13: 32: 09,937 INFO SessionFactoryObjectFactory: 105 - Не привязана фабрика к JNDI, имя JNDI не настроено
Исключение в потоке "main" org.hibernate.HibernateException: в базе данных не возвращено значение сгенерированного идентификатора

Что это значит и как я могу это решить? Спасибо!

Ответы [ 6 ]

45 голосов
/ 24 августа 2011

Я думаю, это означает, что вы пытаетесь использовать генератор IDENTITY ID со столбцом таблицы, который не настроен должным образом.Это должен быть столбец auto_increment для работы генератора IDENTITY.Иначе, база данных не возвращает сгенерированный идентификатор.

5 голосов
/ 02 января 2015

Мы должны auto_increment столбец id таблицы, используя следующий запрос

ALTER TABLE document MODIFY COLUMN document_id INT auto_increment
3 голосов
/ 29 августа 2013

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

2 голосов
/ 29 марта 2017

При создании таблицы в базе данных вы, возможно, забыли задать автоинкремент для этого конкретного столбца.

Или

Вы забыли аннотировать в классе Java как "Сгенерированное значение"

Это будет нормально работать

0 голосов
/ 13 сентября 2014

В таком случае вам не нужно создавать таблицу вручную. Он будет создан по умолчанию с использованием Hibernate. внести изменения или добавить в hibernate.cfg.xml >> поле «hibernate.hbm2ddl.auto», установленное в «update».

0 голосов
/ 22 февраля 2014

Другой способ исправить это - установить Auto_Increment для столбца ID таблицы

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...