Spring 在Java中优化批量文件上载的插入调用
部门代码| empname |工作类型|部门|司法部Spring 在Java中优化批量文件上载的插入调用,spring,jpa,insert,bulk,Spring,Jpa,Insert,Bulk,部门代码| empname |工作类型|部门|司法部 121 |约翰|永久|账户| 2012年12月12日 122 |保罗|永久|收入| 2011年11月12日 123 |马克|承包商|销售| 2010年5月4日 121 |迈克|永久|账户| 2009年9月8日 123 |纳什|承包商|销售| 12/15/2016 124 |能源部|承包商|营销| 2013年4月12日 问题描述: 这就是我试图使用MultiFileupload上传的CSV文件 阅读并创建一个列表 根据EMP_TRANS_表验证
有一个hibernate属性,您可以将其定义为hibernate的
会话工厂的属性之一:
<property name="jdbc.batch_size">500</property>
而不是
insert into Table(id , name) values (1, 'na1');
insert into Table(id , name) values (2, 'na2');
insert into Table(id , name) values (3, 'na3');
在事务性方法中,您将持久化大约500个实体。。然后刷新事务以获得最佳性能,直到保存所有数据:
Transaction tx = session.beginTransaction();
for ( int i=0; i<5000; i++ ) {
EmpTrans empTrans = new EmpTrans();
// populate empTrans attributes
session.save(empTrans);
if ( i % 500 == 0 ) { //500 , same as the JDBC batch size
//flush a batch of inserts and release memory:
session.flush();
session.clear();
}
}
tx.commit();
Transaction tx=session.beginTransaction();
对于(int i=0;i有一个hibernate属性,您可以将其定义为hibernate的会话工厂的属性之一:
<property name="jdbc.batch_size">500</property>
而不是
insert into Table(id , name) values (1, 'na1');
insert into Table(id , name) values (2, 'na2');
insert into Table(id , name) values (3, 'na3');
在事务性方法中,您将保留大约500个实体,然后刷新事务以获得最佳性能,直到保存所有数据:
Transaction tx = session.beginTransaction();
for ( int i=0; i<5000; i++ ) {
EmpTrans empTrans = new EmpTrans();
// populate empTrans attributes
session.save(empTrans);
if ( i % 500 == 0 ) { //500 , same as the JDBC batch size
//flush a batch of inserts and release memory:
session.flush();
session.clear();
}
}
tx.commit();
Transaction tx=session.beginTransaction();
对于(int i=0;i