как вручную установить автоматически сгенерированный идентификатор из lombok с помощью MySQL workbench?

#java #mysql #spring #lombok #javax.persistence

#java #mysql #весна #ломбок #jpa

Вопрос:

У меня есть приложение с несколькими объектами, аннотированными с помощью lombok @Data , и с помощью

 @Id
@GeneratedValue(strategy= GenerationType.AUTO)
  

для идентификатора. В целом все работает нормально. Но мне нужно было вручную вставить строку через MySQL Workbench с id = 635. Это испортило приложение, когда оно попыталось вставить следующую строку, потому что то, что оно считало или вычисляло, будет следующим идентификатором, 635, уже существовавшим. Я думал, что смогу вручную увеличить идентификатор, но я нигде не мог найти его через MySQL workbench.

Итак, где lombok / hibernate / jpa вычисляет или генерирует следующий идентификатор? И есть ли способ вручную изменить его в БД или, по крайней мере, с помощью другого SQL?

Я не уверен, какой фреймворк это делает, поскольку он используется javax.persistence для аннотаций, но также lombok.Data , а затем в app.properties, нет набора диалектов, но у меня есть spring.jpa.hibernate.ddl ключ, поэтому я не уверен, что он также использует биты гибернации.

Комментарии:

1. Это не имеет ничего общего с Lombok и является полностью вашим поставщиком сохраняемости, вероятно, используя последовательность базы данных. Обратите внимание, что обычно это не очень хорошая идея для использования @Data с сущностями, поскольку определяющей характеристикой сущностей является то, что они имеют идентификатор, отличный от их значений; используйте @Getter @Setter вместо этого.

Ответ №1:

Думаю, мне нужно было больше поискать в Google перед публикацией. Нашел этот ответ здесь:

 ALTER TABLE table_name AUTO_INCREMENT = 636;