来自文档
如果我们需要插入100万行/对象的情况:
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();
为什么我们应该使用这种方法?与StatelessSession相比,它带来了哪些好处?为什么要用这种方法?与StatelessSession相比,它有何好处?
StatelessSession session = sessionFactory.openStatelessSession();
Transaction tx = session.beginTransaction();
for ( int i=0; i<100000; i++ ) {
Customer customer = new Customer(.....);
session.insert(customer);
}
tx.commit();
session.close();
我的意思是,这个("替代方案")示例并不使用内存,也不需要同步,清除缓存,那么这难道不应该是这种情况下的最佳实践吗?为什么要使用前面的那个呢?