2010-07-06 66 views
0

我注意到,当我从会话工厂驱逐事件时,cmd_flush计数器在memcached服务器中增加。这使得缓存的用处不大,因为它经常被重置。NHibernate的evict发送flush_all命令到memcached服务器

这里是我的代码触发此:

session.SessionFactory.Evict(typeof(Foo)); 
session.SessionFactory.Evict(typeof(Bar)); 
session.SessionFactory.EvictQueries(key); 

我还没有想出如何NHibernate的变成了flush_all命令这个呢。

有没有人有任何想法如何从缓存中驱逐某些对象类型而不会把它全部带走?

回答

0

显然SessionFactoryImpl.Evict调用Cache.Clear()其中调用client.FlushAll()

我最终调整了数据库设计,以避免必须自己驱逐对象。