title: nHibernate, how query a parent object with multiple relationships
body: <p>I have a (several actually) relationship between two objects, the parent object is a <em>User</em> and the child object is an <em>Incident</em>.
  There are four relationships defined between <em>User</em> and <em>Incident</em>:</p>
  
  <ol>
  <li>Property <strong>User<code>_</code>created</strong> of <em>Incident</em> refers to a <em>User</em> who created the <em>Incident</em></li>
  <li>Property <strong>User<code>_</code>modified</strong> who modified the <em>Incident</em></li>
  <li><strong>User<code>_</code>reported</strong> and finally</li>
  <li><strong>User<code>_</code>responsible</strong></li>
  </ol>
  
  <p>All these four properties of <em>Incident</em> references a <em>User</em> object. Like this in the mapping:</p>
  
  <pre><code>&lt;many-to-one name="User_created" class="User, WebbData" fetch="select"&gt;
      &lt;column name="created_by" not-null="true" /&gt;
  &lt;/many-to-one&gt;
  &lt;many-to-one name="User_modified" class="User, WebbData" fetch="select"&gt;
          &lt;column name="modified_by" not-null="false" /&gt;
  &lt;/many-to-one&gt;
  &lt;many-to-one name="User_reported" class="User, WebbData" fetch="select"&gt;
          &lt;column name="reported_by" not-null="true" /&gt;
  &lt;/many-to-one&gt;
  &lt;many-to-one name="User_responsible" class="User, WebbData" fetch="select"&gt;
      &lt;column name="responsible" not-null="false" /&gt;
  &lt;/many-to-one&gt;
  </code></pre>
  
  <p>I want to write a nHibernate expression to fetch all Incidents created by a specific user but I don't know how to write this expression...
  This is what I got so far:</p>
  
  <pre><code> return session.CreateCriteria(typeof(Incident))
       .CreateCriteria("User")
           .Add(Expression.Eq("Id", UserID))
       .List&lt;Incident&gt;();
  </code></pre>
  
  <p>but how the heck do I tell nHibernate that it should use the <strong>User<code>_</code>created</strong> relation and not one of the other three?</p>