2011-01-15 113 views
3

假設我有一個Post類和一個Tag類。 Post和Tag之間的關係是一對多的關係。我如何編寫一個Hibernate查詢來檢索具有給定標籤的Post對象列表?NHibernate一對多標準查詢

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; 
} 

回答

4

您需要添加一個別名或標準

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