今天也遇到这个问题了,这个错误相信大家都知道,因为在hibernate中同一个session里面有了两个相同标识。
page = pageService.findById(this.getPage().getId());
//page中已经有题目,再添加新题目,新的题目在执行之前已经有id
page.addQuestions(quizes);
quizService.createQuestions(quizes);
pageService.modify(page); //更新page
我遇到过几次这样的问题发现每次都是因为我执行顺序的问题,createQuestions后session中已经存在quize,modify的时候,由于page和question是一对多关系,那么更新级联关系的时候,会更新quizs,session中已经存在那个quiz id
page = pageService.findById(this.getPage().getId());
//page中已经有题目,再添加新题目,新的题目在执行之前已经有id
quizService.createQuestions(quizes);
page.addQuestions(quizes);
pageService.modify(page); //更新page
修改后,就好了
今天时间太紧了,先写到这里
本文介绍了在使用Hibernate框架时遇到的一个常见问题:在一个session中出现重复的ID导致的错误。文章详细解释了错误的原因,并给出了具体的解决方案,通过调整操作顺序避免了同一session内出现重复标识的问题。
863

被折叠的 条评论
为什么被折叠?



