错误:表“tablename”的更新或删除违反外键约束

我试图删除家长学生或家长课程,但出现以下错误:

原因:org.postgresql.util.PSQLException:错误:表“student”上的更新或删除违反了表“registration”上的外键约束“fkeyvuofq5vwdylcf78jar3mxol”

RegistrationId类是注册类中使用的复合密钥。我使用的是SpringDataJPA和SpringBoot

我做错了什么?我知道当父项被删除时,puting cascadetype.all也应该删除子项,但它给了我一个错误

@可嵌入
公共类注册ID实现可序列化{
@JsonIgnoreProperties(“通知”)
@OneToOne(级联=级联类型.ALL)
@JoinColumn(name=“student\u pcn”,referencedColumnName=“pcn”)
私立学生;
@JsonIgnoreProperties({“教师”、“州”、“评论”})
@OneToOne(级联=级联类型.ALL)
@JoinColumn(name=“课程代码”,referencedColumnName=“代码”)
私人课程;

注册类

@实体(name=“注册”)
@表(name=“注册”)
公开课注册{
@嵌入ID
私人注册id;

当您使用关系数据库时,您正在使用这些实体之间的关系设置实体

您收到的错误意味着:

您正试图删除一条记录,该记录的主键在另一个表中用作外键,因此无法删除该记录。

要删除该记录,请先用外键删除该记录,然后删除要删除的原始记录

发表评论