Hibernate双向一对多Cascade.All不工作

时间:2017-11-19 16:40:01

标签: java hibernate one-to-many cascade

我有以下两个课程SubAnswer@Entity public class Answer { @OneToMany(mappedBy = "answer", orphanRemoval = true, cascade = {CascadeType.ALL}) List<SubAnswer> subAnswers; } public class SubAnswer { @ManyToOne(optional = false) Answer answer; }

{
   Answer ans = new Answer();
   List<SubAnswer> subAnswerList = new ArrayList<SubAnswer>();
   ans.setSubAnswers(subAnswerList);
   ans.add(new SubAnswer());
   ans.add(new SubAnswer());
   entityManager.save(ans);
}

我就像这样保存它们

Answer

当我保存SubAnswer时,我认为它应该保存SubAnswer.answer并保存它们但它没有设置docker run -it --add-host redis_server:$host_ip ubuntu bash字段并保持为空

1 个答案:

答案 0 :(得分:0)

老实说,我不能说这是好事还是坏事,但是我遇到了类似的问题,并使用以下方法解决了这个问题:

@Entity
public class Answer {
    @OneToMany(cascade = CascadeType.ALL)
    @JoinColumn(name = "answer_id")
    List<SubAnswer> subAnswers;
}

@Entity
public class SubAnswer {
    @ManyToOne
    @JoinColumn(name = "answer_id")
    Answer answer;
}

这会在SubAnswer表中为您提供“ answer_id”列,并允许您执行以下操作:

{
   Answer ans = new Answer();
   List<SubAnswer> subAnswerList = new ArrayList<SubAnswer>();
   ans.setSubAnswers(subAnswerList);
   ans.add(new SubAnswer());
   ans.add(new SubAnswer());
   entityManager.save(ans);
}

并仍然填充answer_id。

顺便说一句,我几乎没有进入休眠状态,因此,如果有人对这个确定的方法或真正可怕的解决方案有任何意见,我将不胜感激!