[英]Hibernate bidirectional One-to-Many Cascade.All not working
我有以下兩個類Answer
和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
字段,並且它保持為空
老實說,我不能說這是好方法還是壞方法,但是我遇到了類似的問題,並使用以下方法解決了這個問題:
@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。
附帶一提,我幾乎還沒有進入休眠狀態,因此,如果有人對這個確定的或真正可怕的解決方案有任何意見,我將不勝感激!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.