hibernate的批量处理

来源:互联网 发布:医院网络咨询工作计划 编辑:程序博客网 时间:2024/05/09 01:44

既然是批量处理,肯定要用事物(transaction)

Session session = sessionFactory.openSession();

Transaction tx = session.beginTransaction();

日常的批量处理,有少量的因为级联或者复杂操作对多表进行各种处理,这种可以直接使用事务,

此时,需要考虑的是导入功能。导入的信息就可能是大批量的了,这时候,把大批量的插入操作放到session,

会导致内存溢出。


解决方法:循环插入时,每插入一定数量的数据就使用session.flush();session.clear();来立即写入数据并释放内存,就能解决

注意:事务处理要try{...tx.commit();} catch(){tx.rollback();}finally{session.close()}

0 0
原创粉丝点击