java Hibernate双向一对一级联。都不行
我有以下两个类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
字段,并且保持为空
# 1 楼答案
老实说,我不能说这是好的还是坏的做法,但我也遇到了类似的问题,并通过使用以下方法解决了它:
这将在SubAnswer表中为您提供一个“答案id”列,并允许您执行以下操作:
仍然能得到答案
顺便说一句,我才刚刚开始使用hibernate,所以如果有人对这个解决方案是ok还是一个真正糟糕的解决方案有任何意见,我将非常感谢听到这些