save方法是面向业务的,每次插入都需要验证当前数据是否为新数据,
@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);
}
}
注意源码中isNew方法,所以如果是批量插入请勿使用save方法,可以使用EntityManager的persist,使用这个方法也要注意在适当的时候flush。
也可以使用JdbcTemplate,执行批处理操作,如batchUpdate,saveAll等方法。
本文探讨了在业务场景下save方法的使用,强调其在判断数据是否为新记录的功能,并提醒在批量插入时应避免使用save,推荐使用EntityManager的persist方法或JdbcTemplate的批处理操作,如batchUpdate和saveAll。
1190

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



