1. 程式人生 > >Spring Data JPA批量插入效率低下

Spring Data JPA批量插入效率低下

save和saveAll方法是面向業務的,每次插入都需要驗證當前資料是否為新資料,

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