title: Nhibernate query issue
body: <p>Considering the following mapping file where TemporaryAccessOpenCommand and TemporaryAccessCloseCommand both inherit from base class Command</p>
  
  <pre><code>&lt;class name="Command" table="xxx_Commands" lazy="false"&gt;
  &lt;id name="Id" type="Int32" unsaved-value="0"&gt;
    &lt;generator class="identity"/&gt;
  &lt;/id&gt;
  &lt;property name="BeginDate" /&gt;
  &lt;property name="EndDate" /&gt;
  &lt;component name="Result" class="CommandResult"&gt;
    &lt;property name="Status" column="ResultStatus"/&gt;
    &lt;property name="Details" column="ResultDetails" /&gt;
  &lt;/component&gt;
  
  &lt;many-to-one name="Requestor" class="xxx.Domain.SessionInfo, xxx.Domain" column="SessionInfoId" lazy="false" /&gt;
  
  &lt;joined-subclass name="xxx.TemporaryAccess.Commands.TemporaryAccessCloseCommand, xxx.TemporaryAccess" table="xxx_Commands_TemporaryAccess_Close"&gt;
    &lt;key column="CommandId"/&gt;
  &lt;/joined-subclass&gt;
  
  &lt;joined-subclass name="xxx.TemporaryAccess.Commands.TemporaryAccessOpenCommand, xxx.TemporaryAccess" table="xxx_Commands_TemporaryAccess_Open"&gt;
    &lt;key column="CommandId"/&gt;
    &lt;many-to-one name="EndUser" ...... /&gt;
    &lt;property name="Reason"/&gt;
    &lt;property name="AccessRight"/&gt;
    &lt;property name="AccessType"/&gt;
    &lt;bag name="CloseAccessCommands" cascade="all" lazy="false"&gt;
      &lt;key column="OpenCommandId"/&gt;
      &lt;one-to-many class="xxx.TemporaryAccess.Commands.TemporaryAccessCloseCommand, xxx.TemporaryAccess"/&gt;
    &lt;/bag&gt;
  &lt;/joined-subclass&gt;
  </code></pre>
  
  <p></p>
  
  <p>What would be the nhibernate query to retrieve every OpenAccessCommand having no succeeded CloseAccessCommand ?</p>
  
  <p>I tried this :</p>
  
  <pre><code>    public IList&lt;TemporaryAccessOpenCommand&gt; FindOpenCommandsWithoutSucceededCloseCommand()
      {
          return this.HibernateTemplate.ExecuteFind&lt;TemporaryAccessOpenCommand&gt;(delegate(ISession session)
          {
              return session.CreateCriteria(typeof(TemporaryAccessOpenCommand))
                  .CreateCriteria("CloseAccessCommands")
                  .Add(Expression.Not(Expression.Eq("Result.Status", CommandStatus.Succeeded)))
                  .List&lt;TemporaryAccessOpenCommand&gt;();
          });
      }
  </code></pre>
  
  <p>But it will return an OpenAccessCommand that has tow CloseCommand (one failed and one succeeded) when it should return an empty list.</p>
  
  <p>Thanks for your help (and excuse my poor english)</p>