【问题标题】:@GeneratedValue ID try to duplicate primary key of entry in existing database MySQL Java@GeneratedValue ID 尝试在现有数据库 MySQL Java 中复制条目的主键
【发布时间】:2018-01-13 05:33:09
【问题描述】:

我通过从 .xlsx 文件导入数据在 MySQL 中创建了零件数据库。最后一部分 ID 是 3717。

现在我想将 ID 为 3718 的新记录从我的 web 应用程序插入数据库,其中 ID 是自动生成的,但 @GeneratedValue 注释尝试从“1”生成 ID,然后它抛出 org.springframework.dao.DataIntegrityViolationException 进行复制主键。

如何从数据库中的最后一个零件 ID 开始自动生成 ID?

@Entity
@Table(name = "parts")
public class Part {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
private Integer quantity;
private Double price;

public Part() {}
//getters and setters

【问题讨论】:

  • 数据库中的id是AutoIncrement吗?

标签: java mysql database spring


【解决方案1】:

这取决于您的休眠版本。根据这一点,generationtyoe.auto 将触发一件事或另一件事。

如果使用的是表序列,则手动执行 sql 语句将当前值设置为所需的值就足够了。

如果使用的是 auto_increment 表列,则更改表足以更新当前增量值。

【讨论】:

    猜你喜欢
    • 2018-04-29
    • 2014-08-01
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 2012-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多