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