![](/img/trans.png)
[英]Bidirectional @OneToOne cascade issue JPA/Hibernate/Spring-Data
[英]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.