博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jpa batch批量操作save和persist比较
阅读量:4560 次
发布时间:2019-06-08

本文共 1244 字,大约阅读时间需要 4 分钟。

1.网上最常见的JPA----entityManager批量操作方法

private EntityManager em;    @PersistenceContext(name = "EntityManagerFactory")    public void SetEntityManager(EntityManager em) {        this.em = em;    }    @Transactional    public void saveBatch(List
list) { for (int i = 0; i < 10000; i++) { em.persist(list.get(i)); if (i % 1000 == 0) { em.flush(); em.clear(); } } }

2.Jpa--Repository批量写入

@Transactional    public void saveBatchJpa(List
list) { repository.save(list); }

 

3.结论

EM和JPA直接操作集合没有太大的性能区别,直接使用JPA操作集合即可。如下是JPA操作集合的代码,可以看出起始内部也是用的em

  @Transactional    public  List save(Iterable entities) {        List result = new ArrayList();        if (entities == null) {            return result;        }        for (S entity : entities) {            result.add(save(entity));        }        return result;    }/*     * (non-Javadoc)     * @see org.springframework.data.repository.CrudRepository#save(java.lang.Object)     */    @Transactional    public  S save(S entity) { if (entityInformation.isNew(entity)) { em.persist(entity); return entity; } else { return em.merge(entity); } }

 

转载于:https://www.cnblogs.com/fswhq/p/jpa.html

你可能感兴趣的文章
rabbitmq学习(四):利用rabbitmq实现远程rpc调用
查看>>
侯捷C++学习(二)
查看>>
EasyPlayer RTSP Android安卓播放器修复播放画面卡在第一帧bug
查看>>
web项目中全局常量的添加
查看>>
搬运工程 启动!
查看>>
局部加权回归(LWR) Matlab模板
查看>>
Connect to the DSP on C6A8168/DM8168/DM8148 using CCS
查看>>
hibernate在使用getCurrentSession时提示no session found for current thread
查看>>
【Luogu1471】方差(线段树)
查看>>
DEV中svg图标的使用
查看>>
markdown测试
查看>>
Java-Maven-Runoob:Maven 依赖管理
查看>>
杂项-Log:log4net
查看>>
杂项-Java:EL表达式
查看>>
tarroni music
查看>>
unity 使用RotateAround的使用注意
查看>>
[SDOI2009]HH的项链
查看>>
CodeFirst模式,容易引发数据迁移问题(不建议使用)
查看>>
jquery的colorbox关闭并传递数据到父窗
查看>>
使用Nginx、Keepalived构建文艺负载均衡
查看>>