http://www.cnblogs.com/lyj/archive/2008/11/28/1343418.html
可以在映射文件中定义命名查询,<query>元素提供了很多属性,可以用于缓存结果,
在Customer.hbm.xml映射文件中定义名为selectCustomer的查询由于查询所有Customer并启用缓存查询,缓存模式为默认方式(下面有说明)
<query cacheable ="true" cache-mode="normal" name="selectCustomer"> from Customer </query>
编写一个方法:
[Test] public void NamedQueryCacheTest() { using (_session) { Console.WriteLine("--->第一次使用命名查询"); IList<Customer> customers = _session.GetNamedQuery("selectCustomer") .List<Customer>(); } ResetSession(); using (_session) { Console.WriteLine("--->第二次使用命名查询"); IList<Customer> customers = _session.GetNamedQuery("selectCustomer") .List<Customer>(); } }
NHibernate提供的查询(HQL、条件查询、原生SQL查询)都类似