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