我在同一个表中有父条目和子条目,为了区分,我添加了一个具有父ID的列。
表格说明如下
create table temp(id bigint(20) PK,name varchar(50),parent_id bigint(20) references temp(id));
for Ex ..
id | name | parent_id
------------------------
1 | text1 | null
2 | text1.1 | 1
3 | text1.2 | 1
如何使用hibernate save / saveOrUpdate维护此表?
当我要在此表中保存记录时,它将ID作为自动生成,因此在保存时我会得到parent_id = 0而不是实际ID。
请提供一些必要的答案..
答案 0 :(得分:0)
看来,你在业务对象中使用int变量作为父引用。将具有相同业务对象的对象作为父引用。
e.g。
Class ParentChild
{
public int id;
public String name;
public ParentChild objParentChild; // Instead of public **int** parentID;
}
希望,它会帮助你......
答案 1 :(得分:0)
你可以在这里使用hibernate注释Supose我有两个实体问答。
Question have :
questionid
name
Answer have :
answerid
questionid
name
Answer Entity contain :
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="questionid")
private Question question;
Question Entiry contain :
@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY,mappedBy="question")
private List<Answer> anserList = new ArrayList<Answer>();
现在您可以在实际创建问题之前设置答案:
for(Answer opt : question.getAnswerList()){
opt.setQuestion(question);
}