一、Hibernate批量操作基础
Hibernate提供了多种批量处理数据的方式,主要包括:
- Session批量操作:通过Session的save/update/delete方法进行批量处理
- HQL批量操作:使用HQL语句进行批量更新/删除
- 原生SQL批量操作:通过原生SQL进行批量处理
- StatelessSession:无状态会话,适合大批量数据处理
二、批量操作实现方式
1. Session批量插入
如历史附件中所示,可以通过Session进行批量插入:
@Transactional(rollbackFor = Exception.class)
public void batchInsert(List<UserRole> userRoles) {
Session session = sessionFactory.getCurrentSession();
for (int i = 0; i < userRoles.size(); i++) {
session.save(userRoles.get(i));
if (i % 50 == 0) { // 每50条flush一次
session.flush();
session.clear();
}
}
}
2. HQL批量更新/删除
@Transactional
public int batchUpdateRoleName(String oldName, String newName) {
String hql = "update UserRole se

最低0.47元/天 解锁文章
914

被折叠的 条评论
为什么被折叠?



