Java JPA在@ManyToOne上删除父项
我有3个实体通过如下方式相互连接: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
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。删除那里的,以达到预期效果