Если мы используем генератор идентификаторов идентификации и все же устанавливаем первичный ключ для объекта сущности, то какой первичный ключ будет храниться в базе данных? - PullRequest
0 голосов
/ 09 июня 2018

Как мы знаем, если мы используем identity ID Generator в Hibernate и если мы не установим значение первичного ключа для объекта сущности, тогда база данных вставит значение первичного ключа.

Но если мыиспользуется identity ID Generator, и все же мы устанавливаем значение первичного ключа для объекта класса сущности, например entityClassObject.setPrimaryKeyNo(10), тогда какой первичный ключ будет храниться в базе данных?

  1. База данных, обеспеченная первичнойключ
  2. У нас есть первичный ключ

Может кто-нибудь доказать это?

1 Ответ

0 голосов
/ 09 июня 2018

База данных предоставила первичный ключ .Точнее, первичный ключ, предоставленный поставщиком сохраняемости.

Из Javadoc GenerationType.IDENTITY:

ИДЕНТИЧНОСТЬ

public static final GenerationType IDENTITY

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

С Hibernate-5.3.1.Final Руководство пользователя :

2.6.9.Использование столбцов IDENTITY

Для реализации генерации значений идентификаторов на основе столбцов IDENTITY Hibernate использует свой генератор идентификаторов org.hibernate.id.IdentityGenerator, который ожидает, что идентификатор будет сгенерирован INSERT в таблицу .

...