我无法使用JPA删除子元素的孤儿(对不起,如果不清楚,请参阅下文)。
我的调查问卷包含问题列表,其中包含答案
列表 课程问卷:public class Questionnaire {
...
@OneToMany(mappedBy = "questionnaire", cascade = CascadeType.ALL, orphanRemoval = true)
private Set<Question> questions = new HashSet<>();
}
班级问题:
public class Question {
...
@OneToMany(mappedBy = "question", cascade = CascadeType.ALL, orphanRemoval = true)
private Set<Answer> answers = new HashSet<>();
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="questionnaire_id")
private Questionnaire questionnaire;
}
班级答案:
public class Answer {
...
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="question_id")
private Question question;
}
我正在使用带有REST服务的AngularJs前端。
我只在调查表上进行JPA保存操作,我想要插入,更新或删除问题和答案需要的。
感谢 CascadeType.ALL ,当我保存调查问卷时,所有问题和答案都已正确插入,更新。
感谢 orphanRemoval = true ,当我使用已删除的问题保存调查问卷时,这些已删除的问题是正确地从数据库中删除。
但这不适用于已删除的答案:当我使用包含已删除答案的问题保存调查问卷时 ,这些已删除的答案未从数据库中删除。
有什么想法可以帮助我吗? 谢谢:))