我有以下两个课程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
字段并保持为空
答案 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。
顺便说一句,我几乎没有进入休眠状态,因此,如果有人对这个确定的方法或真正可怕的解决方案有任何意见,我将不胜感激!