Когда вы используете GenerationType.TABLE
, текущий идентификатор сохраняется в таблице.Имя таблицы, вероятно, где-то настроено, с idGen
в качестве идентификатора.Возможно, вам придется обновить эту таблицу, чтобы отразить идентификаторы, назначенные вами вручную.Возможно, вам также придется перезапустить ваше приложение, так как оно могло кэшировать следующие несколько идентификаторов, которые будут назначены.
При этом использование GenerationType.TABLE
не рекомендуется.Он использует пессимистичные блокировки и может замедлить работу вашего приложения.
Вместо этого вам следует использовать GenerationType.SEQUENCE
, если ваша база данных поддерживает это.Если вы хотите что-то простое, которое также работает при вставке строк непосредственно в базу данных, вы можете использовать GenerationType.IDENTITY
, который основан на автонумерации столбца в базе данных.Несмотря на простоту, он не самый производительный.Но, вероятно, ничего страшного, если количество вставок относительно мало.