Hibernate中清除缓存对象方法
我们知道,如果一味的让新的数据放到缓存中去,那我们计算机肯定会内存崩溃。所以进行必要的缓存清除还是很有必要的。
下面我们分析一下几种方法:
1 clear()方法
我们可以在session-factory标签下创建property标签,name属性为hibernate.jdbc.batch_size,值为我们想要设定的数字,假如为100,下一步当我们执行操作flush()发送SQL语句时候调用session.clear()方法,就可以实现清除缓存的效果了。
for(int i=0;i<1000;i++){ Order order = new Order(); order.setId(); session.save(order); if(i%100==0){ session.flush(); session.clear(); }}
2 evict()方法
该方法于上一个方法不同,它只能用于处理单个对象的清除工作。
for(int i=0;i<1000;i++){ Order order = new Order(); order.setId(); session.save(order); session.evict();//清除session缓存 SessionFactory.evict();//清除二级缓存}