繁体   English   中英

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)从数据库中删除第一个 StudentInfo 实例(id= studentRepository.deleteById((long) 1) ,实例确实会被删除,与之关联的用户也会被删除,但问题是数据库中其他对象的 ID 不会更新。

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

删除后的用户

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

删除后的学生

我怎样才能使 ID 在删除时自动更新?

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM