Java JPA在@ManyToOne上删除父项

Java JPA在@ManyToOne上删除父项,java,jpa,Java,Jpa,我有3个实体通过如下方式相互连接: Quiz @ManyToOne() private Quiz quiz; @ManyToOne() private QuizQuestions question; 我试图使用quizId删除一个测验,但我得到: 无法删除或更新父行:外键约束失败 (bananpirenquizquestions,约束 FK\u QUIZQUESTIONS\u QUIZID\code>外键(quick\u QUIZID)参考 quick(QUIZID) 错误代码:1451

我有3个实体通过如下方式相互连接:

Quiz

@ManyToOne()
private Quiz quiz;

@ManyToOne()
private QuizQuestions question;
我试图使用quizId删除一个测验,但我得到:

无法删除或更新父行:外键约束失败 (
bananpiren
quizquestions
,约束
FK\u QUIZQUESTIONS\u QUIZID\code>外键(
quick\u QUIZID
)参考
quick
QUIZID
) 错误代码:1451

我的猜测是,JPA不喜欢foreignkey,它的工作方式与@OneToMany行为不同,级联似乎不起作用

我试过@ManyToOne

  • 级联类型。删除
  • 级联类型。持续

我想做的是,当用户删除一个测验时,所有连接的问题和答案也应该被删除。这是否可能仅使用JPA和@manytone关系?如果可能的话,如何进行?

问题是,您希望级联在
@OneToMany
关系上,而不是在
@manytone
关系上。在
@ManyToOne
关系上级联意味着在删除测验答案时删除测验。因此,您需要在
quick
类中定义相应的
@OneToMany
变量,并执行
cascade=CascadeType。删除那里的
,以达到预期效果