Take the 2-minute tour ×  Let's say I have a Cat that has two
properties:    • FavoriteKitten   • SecondFavoriteKitten  These
kittens are discriminated by their Rank.  When loading a Cat, I
want the kitten with the rank of "1" to be FavoriteKitten, and
the kitten with the rank of "2" to be SecondFavoriteKitten.  The
underlying database looks like:  table Cat  table Kitten  My
mapping looks like:  <class name="Cat">   ... other stuff
<one-to-one name="FavoriteKitten" class="Kitten" property-
ref="Cat" cascade="all-delete-orphan" />   <one-to-one
name="SecondFavoriteKitten" class="Kitten" property-ref="Cat"
cascade="all-delete-orphan" />  My criteria query looks like
Cat cat = sess.CreateCriteria(typeof(Cat))
.CreateAlias("FavoriteKitten", "kt1")
.Add(Expression.Eq("kt1.Rank", "1"))
.CreateAlias("SecondFavoriteKitten", "kt2")
.Add(Expression.Eq("kt2.Rank", "2"))  The trouble is that once
loaded, both FavoriteKitten and SecondFavoriteKitten are the
same kitten: the one with a Rank of "2".  Have I left somethin