jpaSaveAll源码

    @Transactional    @Override    public <S extends T> List<S> saveAll(Iterable<S> entities) {        Assert.notNull(entities, "Entities must not be null!");        List<S> result = new ArrayList<S>();        for (S entity : entities) {        //其次要外围则是save办法            result.add(save(entity));        }        return result;    }// save办法        @Transactional    @Override    public <S extends T> S save(S entity) {// 每次进来则是须要查问是否存在这个对象        if (entityInformation.isNew(entity)) {            em.persist(entity);            return entity;        } else {            return em.merge(entity);        }    }

6.4.1 批量插入

解决方案是本人用em进行长久化插入,省了一步查问操作。

@PersistenceContext

private EntityManager entityManager;

@Override

@Transactional(rollbackFor = Exception.class)

public void addBatch(List list) {

for (ProjectApplyDO projectApplyDO : list) {

entityManager.persist(projectApplyDO);//insert插入操作

}

entityManager.flush();

entityManager.clear();

}

6.4.2 批量更新

在确保数据曾经存在的状况下,如果是批量更新能够如下代码代替下面的entityManager.persist(projectApplyDO);语句:

entityManager.merge(projectApplyDO);//update更新操作