日期:2014-05-20  浏览次数:20747 次

请教下hibernate中一级缓存的问题
请教一个问题,如下
得到了session,然后save了一个实体,接着使用session.clear,再事务提交,请问数据库中的表会有此user对象吗
我在想清除了缓存后,commit的应该是没有内容的啊,不知道想法正确不,请大侠指点,谢谢
比如
session.sava(user);
session.clear();
session.begintrancecation.commit();



------解决方案--------------------
hibernate一级缓存是指session缓存
hibernate还有sessionFactory级的2级缓存

一般不这样使用:
session.save(user); 
session.clear(); 
session.begintrancecation.commit(); 
这种没试过,个人认为数据库中的表不会有此user对象,你自己试下就明白了,

一般这样用:
session.save(user);
seesion.flush(); 
session.clear(); 
session.begintrancecation.commit(); 

这种用法一般用于批量更新:
Trancecation tran = session.begintrancecation();
if(i%N == 0){
session.save(user);
seesion.flush(); 
session.clear(); 
tran.commit();
tran = session.begintrancecation();
}