JPA删除@ManyToOne上的父级

时间:2017-05-23 18:32:03

标签: java jpa

Project on github

我有3个实体相互连接,如下所示:

Quiz

@ManyToOne()
private Quiz quiz;

@ManyToOne()
private QuizQuestions question;

我试图使用quizId删除测验,但我得到了:

  

无法删除或更新父行:外键约束失败   (bananpirenquizquestions,CONSTRAINT   FK_QUIZQUESTIONS_QUIZ_QUIZID FOREIGN KEY(QUIZ_QUIZID)参考   quizQUIZID))   错误代码:1451

我的猜测是,JPA不喜欢外键,并且与@OneToMany行为不同,Cascading似乎不起作用。

我试过@ManyToOne

  • CascadeType.REMOVE
  • CascadeType.Persist

我想要发生的是,当用户删除测验时,应删除所有连接的问题和答案。这只能使用JPA和@ManyToOne关系吗?如果可能的话怎么办?

1 个答案:

答案 0 :(得分:1)

问题是,您希望级联#!/usr/bin/python import subprocess import signal import time p=subprocess("adb logcat -v time event") p_id=p.pid time.sleep os.kill(p_pid,signal.SIGINT) print "bye" 关系,而不是@OneToMany关系。级联@ManyToOne关系意味着在您删除测验时删除测验。因此,您需要在@ManyToOne类上定义相应的@OneToMany变量,并在那里执行Quiz以获得所需的效果。