ITPUB??ì3
ITPUB论坛 » Java web开发及框架技术 » Hibernate 2级cache请教!


标题: Hibernate 2级cache请教!
离线 futo9239
中级会员


精华贴数 1
个人空间 0
技术积分 941 (1937)
社区积分 0 (301362)
注册日期 2005-3-11
论坛徽章:0
      
      

发表于 2008-6-17 15:40 
Hibernate 2级cache请教!

请问下,我配置了开启2级Cache,那么session.createQuery之后就应该回把查到的实体放到2级Cache里把,然后在设置sessionFactory.evict把实体从2级缓存里清掉,,那么第2次查询的时候自然是要重新load了,可为什么console显示是直接拿缓存的数据?

hibernate.cfg.xml中:
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<property name="hibernate.cache.use_query_cache">true</property>

ehcache.xml也在,

java代码:
                   String hql = "from TUser where age>?";
                Query query = session.createQuery(hql);
                query.setInteger(0, 30);
                query.setCacheable(true);
                                List userList = query.list();
                 for(int i=0; i<userList.size(); i++){
                        TUser user = (TUser)userList.get(i);
                        getSessionFactory().evict(TUser.class, user.getId());
                        System.out.println(user.getName());
                }
               
                System.out.println("Second Query...");
                               
                query = session2.createQuery(hql);
                query.setInteger(0, 30);
                query.setCacheable(true);
               
                userList = query.list();
                 for(int i=0; i<userList.size(); i++){
                        TUser user = (TUser)userList.get(i);
                        System.out.println(user.getName());
                }

console:
Hibernate: /* from TUser where age>? */ select tuser0_.ID as ID1_, tuser0_.version as version1_, tuser0_.name as name1_, tuser0_.age as age1_, tuser0_.GROUP_ID as GROUP5_1_, tuser0_.resume as resume1_, tuser0_.image as image1_ from TNTPARCEL2.T_USER tuser0_ where tuser0_.age>?
Hibernate: /* load one-to-many com.myeclipose.hibernate.TUser.addressed */ select addressed0_.user_id as user7_1_, addressed0_.ID as ID1_, addressed0_.ID as ID2_0_, addressed0_.address as address2_0_, addressed0_.zipcode as zipcode2_0_, addressed0_.tel as tel2_0_, addressed0_.type as type2_0_, addressed0_.idx as idx2_0_, addressed0_.user_id as user7_2_0_ from TNTPARCEL2.T_Address addressed0_ where addressed0_.user_id=? order by addressed0_.zipcode asc
Hibernate: /* load one-to-many com.myeclipose.hibernate.TUser.addressed */ select addressed0_.user_id as user7_1_, addressed0_.ID as ID1_, addressed0_.ID as ID2_0_, addressed0_.address as address2_0_, addressed0_.zipcode as zipcode2_0_, addressed0_.tel as tel2_0_, addressed0_.type as type2_0_, addressed0_.idx as idx2_0_, addressed0_.user_id as user7_2_0_ from TNTPARCEL2.T_Address addressed0_ where addressed0_.user_id=? order by addressed0_.zipcode asc
ppp
ppp

Second Query...
ppp
ppp

[ 本帖最后由 futo9239 于 2008-6-17 15:41 编辑 ]


只看该作者    顶部
离线 futo9239
中级会员


精华贴数 1
个人空间 0
技术积分 941 (1937)
社区积分 0 (301362)
注册日期 2005-3-11
论坛徽章:0
      
      

发表于 2008-6-17 15:44 
如果说这样只是把实体放到1级Cache的话,那怎么样才回放2级Cache里?我貌似已经开启了2级Cache的配置了


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问