Spring Boot @GeneratedValue (стратегии = GenerationType.IDENTITY) не работает

0

Я создал Entity Student и имею следующие свойства:

@Entity
public class Student {
   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   private Long studentId;
   private String studentName;
   // Setters and getters
}

Он генерирует studentId как 1,2,3 и так далее, это означает, что он увеличивает значение, как и ожидалось.

Теперь я удалил свою базу данных student_db и снова создал ее с тем же именем. И затем перезапустите мое приложение. Несколько вещей, которые я заметил здесь:

  • Это создало студенческую таблицу в моей базе данных (как и ожидалось).

  • Затем с помощью REST API создали одну запись. (Это создано идеально)

Теперь вопрос или я не знаю что это?

Я автоматически сгенерировал studentId с того места, где он был в прошлый раз, я имею в виду, что studentId равен 4. Я не знаю, почему это происходит. Мой ожидаемый результат: studentId должен начинаться с 1, независимо от того, сколько раз я удалял свою базу данных. Это происходит как с @GeneratedValue(strategy = GenerationType.IDENTITY) и с @GeneratedValue(strategy = GenerationType.AUTO)

Я использую следующее:

Spring Boot 2.0.0 RELEASE
MySQL 5.7.23

В моем файле application.properties я установил

spring.jpa.hibernate.ddl-auto = update

Я что-то упустил?

  • 0
    Это связано с самой MySQL. Вы можете попробовать обрезать таблицу, чтобы увидеть, исчезнет ли эта проблема: TRUNCATE TABLE table_name; И выполните команду после сброса AUTO_INCREMENT: ALTER TABLE table_name AUTO_INCREMENT = 1;
Теги:
spring-boot
jpa

1 ответ

2

Это связано с самой MySQL. Вы можете попытаться усечь таблицу, чтобы увидеть, не исчезла ли эта проблема:

TRUNCATE TABLE table_name; 

И запустите команду после сброса AUTO_INCREMENT:

ALTER TABLE table_name AUTO_INCREMENT = 1; 
  • 1
    Я не хочу делать это вручную.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню