错误代码如下所示,当时写的时候想着让对象初始化的次数少一点,想着用一个对象。ScoreSummary scoreSummary = new ScoreSummary();// 为每个班级新增成绩汇总for (Klass klass: courseArrangement.getKlassList()) { scoreSummary.setCourseArrangement(courseArrangement); scoreSummary.setKlass(klass); scoreSummaryRepository.save(scoreSummary);}后来潘老师评论说这样只会保存一个对象,之后的会更新。才突然想到这个问题,其实之前是有用到的logger.info(“保存”);CourseArrangement assertCourseArrangement = courseArrangementService.save(courseArrangement);logger.info(“断言保存成功”);assertThat(assertCourseArrangement.getId()).isNotNull();logger.info(“保存”);courseArrangementService.save(courseArrangement);logger.info(“断言保存成功”);assertThat(courseArrangement.getId()).isNotNull();你穿入的对象和你返回的是一个对象。之后看了一下源码,感觉大概应该是我注释的意思。@Transactionalpublic <S extends T> S save(S entity) { if (this.entityInformation.isNew(entity)) { // 判断是否是新建的实体 this.em.persist(entity); // 如果是新增 return entity; } else { return this.em.merge(entity); // 如果不是更新 }}