首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

Hibernate 批量处理语句解决思路

2012-02-02 
Hibernate 批量处理语句在配置文件中写property namehibernate.jdbc.batch_size20/property和在程

Hibernate 批量处理语句
在配置文件中写
<property name="hibernate.jdbc.batch_size">20</property>

和在程序中写

Java code
while(xxx) {  .....  session.update(object);  if(count%20==0) {    session.flush();    session.cleat();  }  count++;}

有什么区别.

为什么要在配置中 和 程序中同时设置,批量语句的大小

[解决办法]
关注
[解决办法]
没区别吧。
不需要同时设置吧。。
[解决办法]
第一个是jdbc的..第二个是Hibernate的一级缓存Session,session的执行update方法是并不是马上写入数据而是缓存在内存里面,当你处理大批量数据一次性更新的时候,会占用非常多的内存来缓存被更新的对象..有的甚至内存溢出问题,所以批量的时候调用session.flush();session.clear();将本批(你的是20一批)插入的对象立即写入数据库并且释放内存,就是session.clear()来清空一级缓存..最后一般调用tx.commit();session.close();把剩下的插入数据库,关闭session..
[解决办法]
探讨
请问下 那只设置一个可以吗?

在配置文件中写 或者 只在程序中写

热点排行
Bad Request.