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

Reply via email to