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等方法。