簡體   English   中英

休眠雙向一對多級聯

[英]Hibernate bidirectional One-to-Many Cascade.All not working

我有以下兩個類AnswerSubAnswer

@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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM