我创建了一个实体学生,并具有以下属性:
@Entity
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long studentId;
private String studentName;
// Setters and getters
}
它会生成1,2,3之类的
studentId
,依此类推,这意味着它正在按预期的方式增加值。现在,我删除了数据库
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;
关于java - Spring Boot @GeneratedValue(strategy = GenerationType.IDENTITY)不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51784659/