【发布时间】:2019-12-11 10:24:34
【问题描述】:
我在 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=1)时; ,实例确实会被删除,与之关联的 User 也会被删除,但问题是数据库中其他对象的 id 没有得到更新。
删除一个学生后,数据库中的用户如下所示:
剩下的学生(只有一个):
我怎样才能使 id 在 delete 时自动更新?
(2, 3, 4) -> (1, 2, 3)。
【问题讨论】:
-
问题是数据库中其他对象的 id 没有更新。我不知道你为什么会期望这样的事情发生。跨度>
-
@AlanHay 我也调查过。事实上,我不应该期望这会发生。感谢您的时间 !另外:我是新手,我不知道如何结束这个问题
-
无需关闭问题。虽然对于有经验的用户来说答案是显而易见的,但它仍然是一个有效的问题。发布您自己的答案,其中包含您学到的内容并接受它(我认为您必须等待 3 天左右)。
-
@JensSchauder 谢谢你的提示。我就是这么做的
标签: java hibernate jpa spring-data-jpa one-to-one