From: <aye...@us...> - 2009-09-16 02:11:26
|
Revision: 4716 http://nhibernate.svn.sourceforge.net/nhibernate/?rev=4716&view=rev Author: ayenderahien Date: 2009-09-16 02:11:15 +0000 (Wed, 16 Sep 2009) Log Message: ----------- Can now use DetachedCriteria with IStatelessSession - NH-1922 Modified Paths: -------------- branches/2.1.x/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs branches/2.1.x/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj Added Paths: ----------- branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1922/ branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1922/Fixture.cs branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1922/Mappings.hbm.xml branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1922/Model.cs Modified: branches/2.1.x/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs 2009-09-16 01:57:36 UTC (rev 4715) +++ branches/2.1.x/nhibernate/src/NHibernate/Criterion/DetachedCriteria.cs 2009-09-16 02:11:15 UTC (rev 4716) @@ -1,4 +1,5 @@ using System; +using NHibernate.Engine; using NHibernate.Impl; using NHibernate.SqlCommand; using NHibernate.Transform; @@ -65,6 +66,15 @@ return impl; } + /// <summary> + /// Get an executable instance of <c>Criteria</c>, + /// to actually run the query.</summary> + public ICriteria GetExecutableCriteria(IStatelessSession session) + { + impl.Session = (ISessionImplementor)session; + return impl; + } + public static DetachedCriteria For(System.Type entityType) { return new DetachedCriteria(entityType); Property changes on: branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1922 ___________________________________________________________________ Added: bugtraq:url + http://jira.nhibernate.org/browse/%BUGID% Added: bugtraq:logregex + NH-\d+ Added: branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1922/Fixture.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1922/Fixture.cs (rev 0) +++ branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1922/Fixture.cs 2009-09-16 02:11:15 UTC (rev 4716) @@ -0,0 +1,56 @@ +using System; +using NHibernate.Criterion; +using NHibernate.SqlCommand; +using NUnit.Framework; + +namespace NHibernate.Test.NHSpecificTest.NH1922 +{ + [TestFixture] + public class Fixture : BugTestCase + { protected override void OnSetUp() + { + base.OnSetUp(); + using (ISession session = OpenSession()) + { + using (ITransaction tx = session.BeginTransaction()) + { + var joe = new Customer() {ValidUntil = new DateTime(2000,1,1)}; + session.Save(joe); + + tx.Commit(); + } + } + } + + protected override void OnTearDown() + { + using (ISession session = OpenSession()) + { + using (ITransaction tx = session.BeginTransaction()) + { + session.Delete("from Customer"); + tx.Commit(); + } + } + base.OnTearDown(); + } + + + [Test] + public void CanExecuteQueryOnStatelessSessionUsingDetachedCriteria() + { + using(var stateless = sessions.OpenStatelessSession()) + { + var dc = DetachedCriteria.For<Customer>() + .Add(Restrictions.Eq("ValidUntil", new DateTime(2000,1,1))); + + var cust = dc.GetExecutableCriteria(stateless) + .UniqueResult(); + + Assert.IsNotNull(cust); + } + } + + + } +} Added: branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1922/Mappings.hbm.xml =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1922/Mappings.hbm.xml (rev 0) +++ branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1922/Mappings.hbm.xml 2009-09-16 02:11:15 UTC (rev 4716) @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="utf-8" ?> +<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" + assembly="NHibernate.Test" + namespace="NHibernate.Test.NHSpecificTest.NH1922"> + + <class name="Customer" > + <id name="ID" type="Int32"> + <generator class="hilo" /> + </id> + + <property name="ValidUntil" type="DateTime" /> + </class> + +</hibernate-mapping> Added: branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1922/Model.cs =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1922/Model.cs (rev 0) +++ branches/2.1.x/nhibernate/src/NHibernate.Test/NHSpecificTest/NH1922/Model.cs 2009-09-16 02:11:15 UTC (rev 4716) @@ -0,0 +1,11 @@ +using System; +using Iesi.Collections.Generic; + +namespace NHibernate.Test.NHSpecificTest.NH1922 +{ + public class Customer + { + public virtual int ID { get; private set; } + public virtual DateTime ValidUntil { get; set; } + } +} Modified: branches/2.1.x/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj =================================================================== --- branches/2.1.x/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-09-16 01:57:36 UTC (rev 4715) +++ branches/2.1.x/nhibernate/src/NHibernate.Test/NHibernate.Test.csproj 2009-09-16 02:11:15 UTC (rev 4716) @@ -374,6 +374,8 @@ <Compile Include="NHSpecificTest\NH1911\Model.cs" /> <Compile Include="NHSpecificTest\NH1920\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1920\Model.cs" /> + <Compile Include="NHSpecificTest\NH1922\Fixture.cs" /> + <Compile Include="NHSpecificTest\NH1922\Model.cs" /> <Compile Include="NHSpecificTest\NH1927\Fixture.cs" /> <Compile Include="NHSpecificTest\NH1927\Model.cs" /> <Compile Include="NHSpecificTest\NH1928\Fixture.cs" /> @@ -1988,6 +1990,7 @@ <EmbeddedResource Include="Bytecode\Lightweight\ProductLine.hbm.xml" /> <EmbeddedResource Include="DriverTest\MultiTypeEntity.hbm.xml" /> <Content Include="DynamicEntity\package.html" /> + <EmbeddedResource Include="NHSpecificTest\NH1922\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\CriteriaQueryOnComponentCollection\Mappings.hbm.xml" /> <EmbeddedResource Include="NHSpecificTest\NH1908ThreadSafety\Mappings.hbm.xml" /> <EmbeddedResource Include="Tools\hbm2ddl\SchemaUpdate\1_Person.hbm.xml" /> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |