I included a failing test (modulo namespaces) in my email. Was that a stupid thing to do?
On Fri, Dec 17, 2010 at 5:23 PM, Fabio Maulo <[email protected]> wrote: > I don't know. > With a failing test, perhaps, we may have the chance to say something more > sure. > > > On Fri, Dec 17, 2010 at 2:20 PM, Richard Birkby <[email protected]> wrote: > >> So have I done something stupid with my code? >> >> >> On Fri, Dec 17, 2010 at 4:24 PM, Fabio Maulo <[email protected]>wrote: >> >>> everything is possible in a release if we don't have a test for your >>> specific usecase. >>> no-test= everything possible >>> >>> >>> On Fri, Dec 17, 2010 at 11:59 AM, Richard Birkby <[email protected]>wrote: >>> >>>> I've upgrade a project of mine from NH2 to NH3 and now get an error. So >>>> I created a testcase reduction - but I can't believe this is a bug - at >>>> least not one that would have got into a release. I'd like to know if I'm >>>> being stupid before I create a new JIRA report. What is wrong with this >>>> code? The error produced is: >>>> >>>> 14:51:43,918 DEBUG SQL:0 - >>>> SELECT >>>> e1x1_.id as y0_ >>>> FROM >>>> Entity2 this_ >>>> 14:51:44,480 WARN ADOExceptionReporter:0 - >>>> System.Data.SqlClient.SqlException: The multi-part identifier "e1x1_.id" >>>> could not be bound. >>>> >>>> >>>> [Test] >>>> public void ShouldContainJoin() >>>> { >>>> using (var session = OpenSession()) >>>> { >>>> using (var ls = new SqlLogSpy()) >>>> { >>>> ICriteria criteria = >>>> session.CreateCriteria(typeof(Entity2), "e2") >>>> .CreateAlias("e2.Entity1", "e1") >>>> .SetProjection(Projections.Property("e1.Id")); >>>> >>>> criteria.List<Guid>(); >>>> } >>>> } >>>> } >>>> >>>> ------- >>>> >>>> public class Entity1 >>>> { >>>> public virtual Guid Id { get; set; } >>>> } >>>> >>>> public class Entity2 >>>> { >>>> public virtual Entity1 Entity1 { get; set; } >>>> public virtual Entity3 Entity3 { get; set; } >>>> >>>> public virtual bool Equals(Entity2 other) >>>> { >>>> if (ReferenceEquals(null, other)) >>>> { >>>> return false; >>>> } >>>> if (ReferenceEquals(this, other)) >>>> { >>>> return true; >>>> } >>>> return Equals(other.Entity1, Entity1) && >>>> Equals(other.Entity3, Entity3); >>>> } >>>> >>>> public override bool Equals(object obj) >>>> { >>>> return Equals(obj as Entity2); >>>> } >>>> >>>> public override int GetHashCode() >>>> { >>>> unchecked >>>> { >>>> return ((Entity1 != null ? Entity1.GetHashCode() : 0) * >>>> 397) ^ (Entity3 != null ? Entity3.GetHashCode() : 0); >>>> } >>>> } >>>> } >>>> >>>> public class Entity3 >>>> { >>>> public virtual Guid Id { get; set; } >>>> } >>>> >>>> ----- >>>> >>>> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" >>>> assembly="NHibernate.Test" >>>> namespace="NHibernate.Test.NHSpecificTest.NHXXXX"> >>>> <class name="Entity1" table="Entity1"> >>>> <id name="Id" type="Guid" column="id"> >>>> <generator class="guid" /> >>>> </id> >>>> </class> >>>> <class name="Entity2" table="Entity2"> >>>> <composite-id> >>>> <key-many-to-one name="Entity1" class="Entity1" column="id1" >>>> /> >>>> <key-many-to-one name="Entity3" class="Entity3" column="id3" >>>> /> >>>> </composite-id> >>>> </class> >>>> <class name="Entity3" table="Entity3"> >>>> <id name="Id" type="Guid" column="id"> >>>> <generator class="guid" /> >>>> </id> >>>> </class> >>>> </hibernate-mapping> >>>> >>> >>> >>> >>> -- >>> Fabio Maulo >>> >>> >> > > > -- > Fabio Maulo > >
