假设有一个User表和一个教育表。
用户表包含:userId,name,age。
@OneToMany(cascade = CascadeType.ALL, mappedBy = "userId")
private Collection<Educationdetail> educationdetailCollection;
教育表包含:educationId,userId,stream, 学位(流,学位组合独特)
@JoinColumn(name = "userId", referencedColumnName = "userid")
@ManyToOne(optional = false)
private Users userId;
(用户对教育=一对多的关系。)
现在我第一次添加了一个用户。 然后我添加了同一用户的教育细节。
当我要更新时,用户教育详细信息显示“给定对象具有空标识符”。
当我要合并显示唯一约束违规时。
@Override
public int saveOrUpdateProblem(Educationdetail educationdetail) {
try{
sessionFactory.getCurrentSession().merge(educationdetail);
return 1;
}catch(Exception ex){
sessionFactory.getCurrentSession().update(educationdetail);
return 0;
}
}
请告诉我这是怎么回事。 在调试期间,我可以看到教育的集合,但在更新细节时没有标识符的教育对象。 感谢。