既然是批量处理,肯定要用事物(transaction)
Session session = sessionFactory.openSession();
Transaction tx = session.beginTransaction();
日常的批量处理,有少量的因为级联或者复杂操作对多表进行各种处理,这种可以直接使用事务,此时,需要考虑的是导入功能。导入的信息就可能是大批量的了,这时候,把大批量的插入操作放到session,
会导致内存溢出。
解决方法:循环插入时,每插入一定数量的数据就使用session.flush();session.clear();来立即写入数据并释放内存,就能解决
注意:事务处理要try{...tx.commit();} catch(){tx.rollback();} finally{session.close()}