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 > >
