Я создал 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
Я что-то упустил?
Это связано с самой MySQL. Вы можете попытаться усечь таблицу, чтобы увидеть, не исчезла ли эта проблема:
TRUNCATE TABLE table_name;
И запустите команду после сброса AUTO_INCREMENT:
ALTER TABLE table_name AUTO_INCREMENT = 1;