Генератор идентификаторов Hibernate - опция для установки идентификатора самостоятельно или для его создания - PullRequest
1 голос
/ 18 января 2011

Есть ли какой-нибудь генератор первичного ключа Hibernate (например, "назначенный" или "идентификатор"), в котором я могу сам установить идентификатор или сгенерировать его в Hibernate?

Ответы [ 2 ]

4 голосов
/ 20 января 2011

Hibernate предоставляет различные методы генерации идентификаторов.

Вот список некоторых часто используемых генераторов в hibernate:

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

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

sequence : генератор последовательности использует последовательность в DB2, PostgreSQL, Oracle, SAP DB, McKoi или генератор в Interbase.Возвращаемый идентификатор имеет тип long, short или int

hilo : Генератор hilo использует алгоритм hi / lo для эффективного генерирования идентификаторов типа long, short или int с учетом таблицы истолбец (по умолчанию hibernate_unique_key и next_hi соответственно) как источник значений hi.Алгоритм hi / lo генерирует идентификаторы, которые являются уникальными только для конкретной базы данных.Не используйте этот генератор с соединениями, включенными в JTA, или с предоставленным пользователем соединением.

seqhilo : генератор seqhilo использует алгоритм hi / lo для эффективной генерации идентификаторов типа long, shortили int, для заданной именованной последовательности базы данных.

uuid : генератор uuid использует 128-битный алгоритм UUID для генерации идентификаторов строки типа, уникальных в сети (используется IP-адрес)).UUID кодируется в виде строки шестнадцатеричных цифр длиной 32.

guid : он использует сгенерированную из базы данных строку GUID на MS SQL Server и MySQL.

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

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

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

foreign : использует идентификатор другого связанного объекта.Обычно используется в сочетании с первичным ключом связи.Ссылки по теме от Google

2 голосов
/ 18 января 2011

Вы можете использовать Guids или взглянуть на алгоритм Hi Low. Это позволяет каждому клиенту поддерживать блок идентификаторов для использования.

Навыки, вероятно, являются лучшим выбором для создания себя, поскольку они уникальны во всем мире.

Держите ваше отображение как "назначенное" и установите Guid на объекте перед сохранением.

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