加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 如何使用Playframewok JPA执行批量插入?

发布时间:2020-12-14 19:15:19 所属栏目:Java 来源:网络整理
导读:我需要解析一个非常大的文件并将生成的实体存储在数据库中. 我期待每个文件多达150k的记录,并且可以分批处理这些记录. 有没有办法用JPA批量插入Play实体? 最佳答案 为了节省内存,您必须确保定期清除会话,所以 Customer.em().getTransaction().begin(); for

我需要解析一个非常大的文件并将生成的实体存储在数据库中.
我期待每个文件多达150k的记录,并且可以分批处理这些记录.

有没有办法用JPA批量插入Play实体?

最佳答案
为了节省内存,您必须确保定期清除会话,所以

Customer.em().getTransaction().begin(); 
for ( int i=1; i<=100000; i++ ) {
   ....
   myCustomer.save();
   if (i%1000==0) { 
       //Customer.em().getTransaction().commit();           
       Customer.em().flush(); 
       Customer.em().clear();
       //Customer.em().getTransaction().begin(); 
   }
}
Customer.em().getTransaction().commit();           

如果优化批量大小,如何提高性能
hibernate.jdbc.batch_size 100

你可以简单地将最后一行添加到application.conf,所有hibernate.*属性直接转到hibernate.有关详细信息,请参阅JPAPlugin的代码.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读