代码之家  ›  专栏  ›  技术社区  ›  Sudhir Ojha

spring boot@generatedvalue(strategy=generationtype.identity)不工作

  •  0
  • Sudhir Ojha  · 技术社区  · 6 年前

    我创建了一个实体学生,具有以下属性:

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

    它正在生成 studentId 与1、2、3等类似,这意味着它按预期递增值。

    现在我的数据库掉了 student_db 又用同样的名字创造了一次。然后重新启动我的应用程序。现在我注意到以下几点:

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

    • 然后使用rest api创建了一个条目。(创建的 完美地)

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

    我自动生成了 学究 我是说,从上次的情况来看 学究 是4。我不知道为什么会这样。我的预期结果是 学究 应该从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
    

    我遗漏了什么吗?

    1 回复  |  直到 5 年前
        1
  •  2
  •   Brother    6 年前

    这与mysql本身有关。 您可以尝试截断表以查看此问题是否消失:

    TRUNCATE TABLE table_name; 
    

    并在之后运行命令以重置自动增量:

    ALTER TABLE table_name AUTO_INCREMENT = 1;