使用Spring Hibernate批量插入/更新

时间:2014-10-08 13:40:36

标签: java spring performance hibernate

根据Hibernate文档,批量插入的最佳方法是:

Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();

for ( int i=0; i<100000; i++ ) {
    Customer customer = new Customer(.....);
    session.save(customer);
    if ( i % 20 == 0 ) { //20, same as the JDBC batch size
        //flush a batch of inserts and release memory:
        session.flush();
        session.clear();
    }
}

tx.commit();
session.close();

实际上,我正在使用Hibernate和Spring(@Transactional),因此我不会使用Session和方法flush()clear()。< / p>

我遇到了性能方面的主要问题:插入7400行1小时......

我认为Spring对会话管理不善,并且在调用DAO类的方法之间断开了与数据库的连接。

如何检查?

0 个答案:

没有答案