当前位置: 首页 > 知识库问答 >
问题:

用auto_increment主键覆盖记录

鲁浩渺
2023-03-14

我找过了,但什么也没找到。我有一个实体类,如下所示:

@Entity
public class Report {
    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id")
    private int id;
    @Column(name = "descrizione")
    private String descrizione = null;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getDescrizione() {
        return descrizione;
    }

    public void setDescrizione(String descrizione) {
        this.descrizione = descrizione;
    }   
}

在application.properties中,我有以下配置:

spring.jpa.hibernate.ddl-auto=none
spring.datasource.url=jdbc:mysql://localhost:3306/civicsense?serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=AAAAAAA

我们将感谢您的帮助

共有1个答案

夹谷星纬
2023-03-14

首先,将int更改为long。您可以省略该策略,因为对于MySQLgenerationtype.identitygenerationtype.auto相同,这相当于只添加@generatedvalue

@Id @GeneratedValue
private Long id;

另外,您的问题可能是添加实体的方式。在本例中,您可能希望使用saveandflush(),因为在此命令中更改将立即刷新到DB,这可能会防止您的问题,因为您的实际方法可能没有按时提交。

 类似资料:
  • 我正在使用用户密钥作为用户表中的主键 它总是显示这样的错误

  • 对于Spring Boot2.1,默认情况下禁用bean重写,这是一件好事。 然而,我确实有一些测试,其中我使用mockito用模拟实例替换bean。在默认设置下,使用这种配置的测试将由于bean重写而失败。 我发现唯一有效的方法是通过应用程序属性启用bean重写: 但是,我真的希望确保测试配置的bean定义设置最小,这一点将由spring在禁用重写的情况下指出。 我正在重写的bean是 在导入到

  • 问题内容: 我对mysql有一个奇怪的问题。 我正在尝试更改表的列,该列是主键,并且对它定义了auto_increment约束。这也是其他多个表的外键参考。我需要在父级和所有子级中都更改此列的长度。 这将删除父表上的自动增量。添加约束的最佳方法是什么? 以下似乎失败了。 有没有更好的方法来实现这一目标? 编辑:显示创建为(更改后): 变更之前 谢谢! 问题答案: 您无需在MODIFY语句中指定:

  • 本文向大家介绍MySQL ALTER列删除主键和auto_increment?,包括了MySQL ALTER列删除主键和auto_increment?的使用技巧和注意事项,需要的朋友参考一下 您可以使用ALTER命令删除主键和auto_increment。语法如下- 为了理解上述语法,让我们创建一个表。创建表的查询如下- 使用DESC命令检查表的描述。语法如下- 使用DESC检查表'removeP

  • 问题内容: 我编写了一个Java程序来访问MySQL innodb数据库。 每当INSERT IGNORE语句遇到重复的条目时,“自动增量”主键就会递增。 这是预期的行为吗?我认为IGNORE不应该发生这种情况。这意味着,IGNORE实际上会产生写入新主键值的额外开销。 下表如下: 谢谢! 问题答案: 从MySQL 5.1.22开始,这就是默认行为。 如果您想避免自动增量列中出现空白,可以将配置变

  • 问题内容: 我正在尝试学习Hibernate的工作方式,并且几乎陷入了无法接受的学习曲线。我看不到如何使Hibernate尊重我的对象的auto_increment策略。而是使用现有ID(从1开始)覆盖数据库中的条目。 我有一个简单的对象,由定义如下的MySQL表支持: 我已经确认使用SQL()手动插入多个Foo对象是正确的。 我的Java类具有使用如下注释来指定的ID: 然后,我执行一些测试代码