hibernate的批量处理

本文介绍了一种批量数据处理的有效方法,通过使用事务管理和循环插入,结合session.flush()及session.clear()来避免内存溢出的问题,并确保了数据的完整性和一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

Session session = sessionFactory.openSession();

Transaction tx = session.beginTransaction();

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

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

会导致内存溢出。


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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值