今天也遇到这个问题了,这个错误相信大家都知道,因为在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
修改后,就好了
今天时间太紧了,先写到这里