Spring Hibernate JPA 双向 OneToOne - 删除时不更新 id

Spring Hibernate JPA Bidirectional OneToOne - not updating id on delete

我在 OneToOne 关系中有 2 个实体:

一个用户实体:

@Entity
public class User{

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    @OneToOne
    @JoinColumn()
    private StudentInfo studentInfo;
}

还有一个 StudentInfo 实体:

@Entity
public class StudentInfo {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    @OneToOne(cascade = CascadeType.REMOVE)
    @JoinColumn()
    private User user;
}

当我使用 studentRepository.deleteById((long) 1) 从数据库(id=1)中删除第一个 StudentInfo 实例时; ,实例确实被删除了,与之关联的用户也被删除了,但问题是数据库中其他对象的 ID 没有得到更新。

删除学生后,数据库中的用户如下所示:

剩下的同学(只有一个):

如何让 ID 在删除时自动更新?

(2, 3, 4) -> (1, 2, 3).

显然这是一个非常愚蠢的问题,因为虽然数据库中的 ID 对于 table 中的每一行都必须是唯一的,但它们不必是连续的。

因此,当数据库 table 中的注册表(一行)被删除时,其他注册表的 ID 不会更新,因为不需要它。这适用于所有 sql 数据库,与 Spring 或 JPA 无关。