конфликт приращения генератора гибернации с автоматическим приращением таблицы - PullRequest
1 голос
/ 21 июля 2011

Я установил генератор как «приращение» в файле hbm, а также поместил auto_increment в таблицу базы данных.Этот creteria показывает проблему ....

Это обе вещи противоречат друг другу??

1 Ответ

3 голосов
/ 21 июля 2011

Да, они конфликтуют, не имеет смысла ..

При использовании встроенного генератора hibernate 'increment', это спящий режим, который генерирует идентификаторы, считая максимальное значение первичного ключа при запуске, небезопасно вmulti JVM и использование базы данных AUTO_INCREMENT - это база данных, которая генерирует уникальный идентификатор для новых строк.

В DB MySQL, если вы используете AUTO_INCREMENT, вы должны использовать идентификатор в своем отображении, чтобы позволить базе данных безопасно генерировать уникальный идентификатор.

Из документации гибернации

приращение

Генерирует идентификаторы типа long, short или int, которые являются уникальными только тогда, когда никакой другой процесс не вставляет данные вта же таблица.Не используйте в кластере.

identity

поддерживает столбцы идентификации в DB2, MySQL, MS SQL Server, Sybase и HypersonicSQL.Возвращаемый идентификатор имеет тип long, short или int.

Дополнительная информация
Hibernate Doc раздел 5.1.4.1.Генератор
Моя документация sql AUTO_INCREMENT

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