|
From: <te...@us...> - 2008-11-27 20:12:38
|
Revision: 3936
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=3936&view=rev
Author: tehlike
Date: 2008-11-27 20:12:33 +0000 (Thu, 27 Nov 2008)
Log Message:
-----------
Fix for NH-1591 by Henry Concei?\195?\167?\195?\163o with tests added.
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs
trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs
Modified: trunk/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs 2008-11-27 19:58:01 UTC (rev 3935)
+++ trunk/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs 2008-11-27 20:12:33 UTC (rev 3936)
@@ -166,6 +166,18 @@
return this;
}
+ public DetachedCriteria SetCacheRegion(string region)
+ {
+ criteria.SetCacheRegion(region);
+ return this;
+ }
+
+ public DetachedCriteria SetCacheable(bool cacheable)
+ {
+ criteria.SetCacheable(cacheable);
+ return this;
+ }
+
public DetachedCriteria SetProjection(IProjection projection)
{
criteria.SetProjection(projection);
Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs 2008-11-27 19:58:01 UTC (rev 3935)
+++ trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs 2008-11-27 20:12:33 UTC (rev 3936)
@@ -7,6 +7,7 @@
using NHibernate.Type;
using NHibernate.Util;
using NUnit.Framework;
+using NUnit.Framework.SyntaxHelpers;
namespace NHibernate.Test.Criteria
{
@@ -1589,7 +1590,35 @@
t.Commit();
session.Close();
}
+ [Test]
+ public void CacheDetachedCriteria()
+ {
+ using (ISession session = OpenSession())
+ {
+ bool current = sessions.Statistics.IsStatisticsEnabled;
+ sessions.Statistics.IsStatisticsEnabled = true;
+ sessions.Statistics.Clear();
+ DetachedCriteria dc = DetachedCriteria.For(typeof (Student))
+ .Add(Property.ForName("Name").Eq("Gavin King"))
+ .SetProjection(Property.ForName("StudentNumber"))
+ .SetCacheable(true);
+ Assert.That(sessions.Statistics.QueryCacheMissCount,Is.EqualTo(0));
+ Assert.That(sessions.Statistics.QueryCacheHitCount, Is.EqualTo(0));
+ dc.GetExecutableCriteria(session).List();
+ Assert.That(sessions.Statistics.QueryCacheMissCount, Is.EqualTo(1));
+ dc = DetachedCriteria.For(typeof(Student))
+ .Add(Property.ForName("Name").Eq("Gavin King"))
+ .SetProjection(Property.ForName("StudentNumber"))
+ .SetCacheable(true);
+ dc.GetExecutableCriteria(session).List();
+
+ Assert.That(sessions.Statistics.QueryCacheMissCount, Is.EqualTo(1));
+ Assert.That(sessions.Statistics.QueryCacheHitCount, Is.EqualTo(1));
+ sessions.Statistics.IsStatisticsEnabled = false;
+ }
+
+ }
[Test]
public void PropertyWithFormulaAndPagingTest()
{
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|