我创建了一个实体 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 开始,无论我删除数据库多少次。 @GenerateValue(strategy = GenerationType.IDENTITY)
和 @GenerateValue(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_INCRMENT 后运行命令:
ALTER TABLE table_name AUTO_INCREMENT = 1;
关于java - Spring Boot @GenerateValue(strategy = GenerationType.IDENTITY) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51784659/