首页 新闻 会员 周边 捐助

Nhibernate二级缓存

0
悬赏园豆:50 [已解决问题] 解决于 2009-09-25 10:52

最近学缓存,我配置好像都通过编译,而且已经成功运行,但是我调试的时候,发现ISessionFactory对象里面没有我已经配置好的缓存,配置如下:

config里面的:

 <property name="cache.provider_class">NHibernate.Caches.SysCache.SysCacheProvider, NHibernate.Caches.SysCache</property>     
      <property name ="cache.use_second_level_cache">true</property>
      <property name="cache.use_query_cache">true</property>

hmb文件里面的:

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"  assembly="Test" namespace="Test">
  <class name="Test.Person,Test" table="person" >
    <cache usage="read-write"/>
    <id name="Id" column="id" type="string" >
    </id>   
    <property name="PerName" column ="perName" type="string" length="30" not-null="true"/>
    <property name ="Password" column="password" type="string" length="30" not-null="true"/>
   
    <set name="ListMessage" table="MessageContext" cascade="all" >
      <cache usage="read-write"/>
      <key column="idPerson" not-null="true"/>
      <one-to-many class="Test.messageContext,Test"/>
    </set>
    <one-to-one  name="Message"  class="Test.NewsMessage,Test" cascade="all"/>
  </class> 
</hibernate-mapping>

调试的时候只能在Statistics.SecondLevelCacheRegionNames属性里面看到名字,没发现有数据存入。

然后我有使用了查询缓存:

 IQuery qury = session.CreateQuery("from Person where Id =:idin").SetCacheable(true);
            qury.SetParameter("idin", this.txtUserID.Text);

调试,结果这个查询缓存在Statistics.SecondLevelCacheRegionNames里根本就没有。

wuhan的主页 wuhan | 初学一级 | 园豆:11
提问于:2009-09-22 11:22
< >
分享
最佳答案
0

短消息回过了这个问题

收获园豆:50
李永京 | 老鸟四级 |园豆:3114 | 2009-09-22 13:20
回答为什么要在短信息中回答?.破帚自珍?..还是涉及机密? 那种也好~鄙视,
邢少 | 园豆:10926 (专家六级) | 2009-09-25 11:19
不好意思啊,本身回过了,重复写没意思啊
李永京 | 园豆:3114 (老鸟四级) | 2009-09-26 19:34

@李永京: 太悲剧了,怎么没有写出来给我们这些新手参考下呢

Y香菇 | 园豆:200 (初学一级) | 2013-06-11 14:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册