|
From: <fab...@us...> - 2011-04-08 05:00:35
|
Revision: 5635
http://nhibernate.svn.sourceforge.net/nhibernate/?rev=5635&view=rev
Author: fabiomaulo
Date: 2011-04-08 05:00:29 +0000 (Fri, 08 Apr 2011)
Log Message:
-----------
Fix NH-2627
Modified Paths:
--------------
trunk/nhibernate/src/NHibernate/Impl/CriteriaImpl.cs
trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs
Modified: trunk/nhibernate/src/NHibernate/Impl/CriteriaImpl.cs
===================================================================
--- trunk/nhibernate/src/NHibernate/Impl/CriteriaImpl.cs 2011-04-07 23:21:21 UTC (rev 5634)
+++ trunk/nhibernate/src/NHibernate/Impl/CriteriaImpl.cs 2011-04-08 05:00:29 UTC (rev 5635)
@@ -588,7 +588,7 @@
"Could not find parent for subcriteria in the previous subcriteria. If you see this error, it is a bug");
}
Subcriteria clonedSubCriteria =
- new Subcriteria(clone, currentParent, subcriteria.Path, subcriteria.Alias, subcriteria.JoinType);
+ new Subcriteria(clone, currentParent, subcriteria.Path, subcriteria.Alias, subcriteria.JoinType, subcriteria.WithClause);
clonedSubCriteria.SetLockMode(subcriteria.LockMode);
newParents[subcriteria] = clonedSubCriteria;
}
Modified: trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs
===================================================================
--- trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs 2011-04-07 23:21:21 UTC (rev 5634)
+++ trunk/nhibernate/src/NHibernate.Test/Criteria/CriteriaQueryTest.cs 2011-04-08 05:00:29 UTC (rev 5635)
@@ -2890,6 +2890,31 @@
Assert.IsNull(result[1]);
Assert.IsNull(result[2]);
}
+
+ // test != on one existing value (using clone)
+ var criteria = session.CreateCriteria<Student>()
+ .CreateAlias("PreferredCourse", "pc", JoinType.LeftOuterJoin,
+ Restrictions.Not(Restrictions.Eq("pc.CourseCode", "HIB-A")))
+ .SetProjection(Property.ForName("pc.CourseCode"))
+ .AddOrder(Order.Asc("pc.CourseCode"));
+ var clonedCriteria = CriteriaTransformer.Clone(criteria);
+ result = clonedCriteria.List<string>();
+
+ Assert.AreEqual(3, result.Count);
+
+ // can't be sure of NULL comparison ordering aside from they should
+ // either come first or last
+ if (result[0] == null)
+ {
+ Assert.IsNull(result[1]);
+ Assert.AreEqual("HIB-B", result[2]);
+ }
+ else
+ {
+ Assert.AreEqual("HIB-B", result[0]);
+ Assert.IsNull(result[1]);
+ Assert.IsNull(result[2]);
+ }
session.Delete(gavin);
session.Delete(leonardo);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|