2010-02-14 28 views
0

如何在NHibernate.Search中使用二級緩存?如何在NHibernate中使用二級緩存。搜索

我試圖在FullTextQuery上啓用SetCacheable,但它不起作用。

 var session = Search.CreateFullTextSession(database.Session); 

     session.CacheMode = CacheMode.Normal; 

     var textQuery = session.CreateFullTextQuery(query, new[] { typeof(Job) }); 

     textQuery.SetCacheable(true); 
     textQuery.SetCacheRegion("Job"); 

     var jobs = textQuery.List<Job>(); 

     return jobs; 

對於所有其他標準查詢,緩存工作正常,但與FullTextQueries,它不,NHibernate.Search仍然打我的數據庫。

注意NHibernate.Search生成的查詢是SELECT ... WHERE ENTITYID IN(ID1,ID2,ID3,...)

回答

2

你確定你的實體是在第2級緩存。通常你必須在事務中工作和查詢,以便二級緩存做任何事情。

+1

我創建的唯一方法是爲nhibernate fulltextquery指定標準... – 2010-02-21 08:12:48

相關問題