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