2011-01-15 10 views
3

Angenommen, ich habe eine Post-Klasse und eine Tag-Klasse. Die Beziehung zwischen Post und Tag ist eins zu viele. Wie kann ich eine Hibernate-Abfrage schreiben, um eine Liste von Post-Objekten mit einem bestimmten Tag abzurufen?NHibernate Eins-zu-viele Kriterien Abfrage

public IList<Post> FindByTag(Tag tag) 
{ 
    IList<Post> posts; 
    using (ISession session = HibernateUtil.GetSessionFactory().OpenSession()) 
    { 
     posts = session.CreateCriteria<Post>() 
      .Add(...) // what Criteria do I add? 
      .List<Post>(); 
    } 
    return posts; 
} 

Antwort

4

Sie benötigen einen Alias ​​oder Kriterien hinzufügen

session.CreateCriteria<Post>() 
.CreateAlias("Tags", "tag") 
.Add(Restrictions.Eq("tag.Id", tag.Id)) 
.List<Post>();