Disclaimer: I am a java Hibernate user; I have not used NHibernate but I assume it is very similar.
Some pseudocode: Assuming you have two entity objects, like:
public class EmployeeRelation {
Employee Parent //parent property
Employee Employee //child property
}
public class Employee {
int EmployeeID
...
}
You'll want to map each property on the EmployeeRelation using a many-to-one relationship (many EmployeeRelations can point to the same Employee). The hibernate docs detail the config info for this kind of relationship.
Then you can do (this is Java-style code so it may be different for NH):
Criteria c = session.createCriteria(Employee.class);
c.add(Restrictions.eq("EmployeeID", 6357));
Employee myEmployee = (Employee)c.uniqueResult();
Then, to get the siblings (all relations for this parent):
c = session.CreateCriteria(EmployeeRelation.class);
c.add(Restrictions.eq("Parent", myEmployee));
List siblings = (List)c.uniqueResult();
This is off the top of my head; you may be able to find a more elegant way to do it all in one query using HQL for example. If each Employee can only have a single parent, you could also look at mapping the Employee with a collection of other Employee objects and a parent Employee reference, instead of using an EmployeeRelation object.
HTH!