Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring Boot@GeneratedValue(策略=GenerationType.IDENTITY)不工作_Java_Mysql_Spring Boot_Jpa - Fatal编程技术网

Java Spring Boot@GeneratedValue(策略=GenerationType.IDENTITY)不工作

Java Spring Boot@GeneratedValue(策略=GenerationType.IDENTITY)不工作,java,mysql,spring-boot,jpa,Java,Mysql,Spring Boot,Jpa,我已创建一个实体Student并具有以下属性: @Entity public class Student { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long studentId; private String studentName; // Setters and getters } 它正在生成studentId,如1、2、3等,这意味着它正在按预期增加值 现在我已经删除了我

我已创建一个实体Student并具有以下属性:

@Entity
public class Student {
   @Id
   @GeneratedValue(strategy = GenerationType.IDENTITY)
   private Long studentId;
   private String studentName;
   // Setters and getters
}
它正在生成
studentId
,如1、2、3等,这意味着它正在按预期增加值

现在我已经删除了我的数据库
student\u db
,并再次使用相同的名称创建了数据库。然后重新启动我的应用程序。现在我注意到以下几点:

  • 它在我的数据库中创建了一个学生表(如预期的那样)

  • 然后使用RESTAPI创建了一个条目。(即 (完美地)

现在是问题还是我不知道是什么

我从上次的位置自动生成了
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; 
然后运行命令重置自动增量:

ALTER TABLE table_name AUTO_INCREMENT = 1; 
请试一试

@GeneratedValue(
    strategy= GenerationType.AUTO,
    generator="native"
)
@GenericGenerator(
    name = "native",
    strategy = "native"
)
private Long id;

这与MySQL本身有关。您可以尝试截断表以查看此问题是否消失:truncate table\u name;并在重置自动增量后运行命令:ALTER TABLE_name AUTO_INCREMENT=1;