Первичный ключ не начинается с 1 после усечения данных таблицы - PullRequest
0 голосов
/ 15 ноября 2018

Я использую

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;

в UserDetails таблице. Но, как только я усекаю UserDetails таблицу, она не запускает значение Id с самого начала. Я не дал SEQUENCE в дБ, но он добавляется как последовательность.

Ответы [ 3 ]

0 голосов
/ 15 ноября 2018

Если вы используете AUTO, если вы используете hibernate, он выберет один из strategies для генерации вашего идентификатора. Из справки:

AUTO - столбец идентификаторов, последовательность или таблица в зависимости от базовая БД .

0 голосов
/ 15 ноября 2018

Я добавил

   @Id
   @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEQ_DATA")
   @SequenceGenerator(sequenceName = "my_seq", allocationSize = 1, name = "SEQ_DATA")
   private int id;

Если я усекаю таблицу, я СОБЛЮДУЮ последовательность, используя, DROP SEQUENCE SEQ_DATA;Затем я снова создам SEQ_DATA.

создать последовательность SEQ_DATA minvalue 1 maxvalue 999999999999999999999 начать с 1 приращения на 1 кэш 20;

0 голосов
/ 15 ноября 2018

Во-первых, когда вы используете аннотацию @GeneratedValue(strategy = GenerationType.AUTO), поставщик сохраняемости будет определять значения на основе типа атрибута первичного ключа.

Этот тип может быть numerical или UUID. Для значений numeric (Ваша ситуация) генерация основана на sequence или таблице generator. Таким образом, значения первичного ключа будут уникальными на уровне базы данных .

Теперь вернемся к вашему вопросу. Что вы можете сделать, это найти сгенерированную последовательность в вашей базе данных и воссоздать ее.

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