|
From: <fab...@us...> - 2010-09-01 17:44:42
|
Revision: 5176
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5176&view=rev
Author: fabiomaulo
Date: 2010-09-01 17:44:35 +0000 (Wed, 01 Sep 2010)
Log Message:
-----------
Apply NH-2006
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/ManyToOneFilters20Behaviour/Fixture.cs
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/ManyToOneFilters20Behaviour/Mappings.hbm.xml
trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/ManyToOneFilters20Behaviour/Model.cs
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/ManyToOneFilters20Behaviour/Fixture.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/ManyToOneFilters20Behaviour/Fixture.cs 2010-09-01 17:24:19 UTC (rev 5175)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/ManyToOneFilters20Behaviour/Fixture.cs 2010-09-01 17:44:35 UTC (rev 5176)
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using NHibernate.Criterion;
using NUnit.Framework;
namespace NHibernate.Test.NHSpecificTest.ManyToOneFilters20Behaviour
@@ -93,5 +94,40 @@
Assert.IsNotNull(resHql[0].Child);
}
}
+
+ [Test]
+ public void VerifyQueryWithWhereClause()
+ {
+ using (ISession s = OpenSession())
+ {
+ using (ITransaction tx = s.BeginTransaction())
+ {
+ var p = createParent();
+ p.ParentString = "a";
+ p.Child.ChildString = "b";
+ s.Save(p);
+ tx.Commit();
+ }
+ }
+ IList<Parent> resCriteria;
+ IList<Parent> resHql;
+ using (ISession s = OpenSession())
+ {
+ enableFilters(s);
+ resCriteria = s.CreateCriteria(typeof(Parent), "p")
+ .CreateCriteria("Child", "c")
+ .SetFetchMode("Child", FetchMode.Join)
+ .Add(Restrictions.Eq("p.ParentString", "a"))
+ .Add(Restrictions.Eq("c.ChildString", "b"))
+ .List<Parent>();
+ resHql = s.CreateQuery(@"select p from Parent p
+ join fetch p.Child c
+ where p.ParentString='a' and c.ChildString='b'").List<Parent>();
+ }
+ Assert.AreEqual(1, resCriteria.Count);
+ Assert.IsNotNull(resCriteria[0].Child);
+ Assert.AreEqual(1, resHql.Count);
+ Assert.IsNotNull(resHql[0].Child);
+ }
}
}
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/ManyToOneFilters20Behaviour/Mappings.hbm.xml
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/ManyToOneFilters20Behaviour/Mappings.hbm.xml 2010-09-01 17:24:19 UTC (rev 5175)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/ManyToOneFilters20Behaviour/Mappings.hbm.xml 2010-09-01 17:44:35 UTC (rev 5176)
@@ -9,6 +9,7 @@
</id>
<many-to-one name="Child" class="Child" cascade="all" not-null="true"/>
+ <property name="ParentString"/>
</class>
<class name="Child">
@@ -17,6 +18,7 @@
</id>
<property name="IsActive"/>
<property name="Always"/>
+ <property name="ChildString"/>
<filter name="activeChild" condition=":active = IsActive" />
<filter name="alwaysValid" condition=":always = Always" />
</class>
Modified: trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/ManyToOneFilters20Behaviour/Model.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/ManyToOneFilters20Behaviour/Model.cs 2010-09-01 17:24:19 UTC (rev 5175)
+++ trunk/nhibernate/src/NHibernate.Test/NHSpecificTest/ManyToOneFilters20Behaviour/Model.cs 2010-09-01 17:44:35 UTC (rev 5176)
@@ -6,6 +6,7 @@
{
public virtual Guid Id { get; set; }
public virtual Child Child { get; set; }
+ public virtual string ParentString { get; set; }
}
public class Child
@@ -18,5 +19,6 @@
public virtual Guid Id { get; set; }
public virtual bool IsActive { get; set; }
public virtual bool Always { get; set; }
+ public virtual string ChildString { get; set; }
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|