2010-07-06 133 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()

我最終調整了數據庫設計,以避免必須自己驅逐對象。