日期:2014-05-18  浏览次数:20602 次

关于hibernate批量操作的问题
本帖最后由 daichangfu 于 2012-11-18 16:03:34 编辑
hibernate.jdbc.batch_size = 20
如果我设置这个属性为20

if ( i % 20 == 0 ) { //单次批量操作的数目为20
  session.flush(); //清理缓存,执行批量插入20条记录的SQL insert语句
  session.clear(); //清空缓存中的Customer对象
}

单次批量操作的数据必须为20条吗?
可以多于20条吗? 如25条
可以少于20条吗? 如15条?


------解决方案--------------------
hibernate.jdbc.batch_size = 20是指hibernate单次提交记录最大值为20 啊,举个简单例子,如果你需要提交的记录为100条,那么hibernate会分5次提交。而25条的时候,hibernate提交2次。15条的话,hibernate一次提交就ok。这个是hibernate自动处理的,与你批量处理多少数据没关系
------解决方案--------------------
引用:
hibernate.jdbc.batch_size = 20是指hibernate单次提交记录最大值为20 啊,举个简单例子,如果你需要提交的记录为100条,那么hibernate会分5次提交。而25条的时候,hibernate提交2次。15条的话,hibernate一次提交就ok。这个是hibernate自动处理的,与你批量处理多少数据没关系


恩对,他是自己处理的,不需要你去做这个业务操作。详情可以去看看文档介绍。