2010-03-06 84 views
1

我在NHibernate Criteria搜索中遇到了多個連接問題。假設我有一張寵物桌,並且我想要歸還寵物類別爲狗的所有寵物,並且所有者性別爲女性,由寵物生日訂購。我已經嘗試了一系列排列組合,以便如何獲得此功能,但一直未能弄清楚。我最近的迭代如下:NHibernate多個標準困難

var recentPets = session.CreateCriteria(typeof(Pet)) 
      .AddOrder(Order.Desc("PetBirthday")) 
      .CreateCriteria("PetType", "pt", JoinType.InnerJoin) 
      .CreateCriteria("PetOwnerId", "po", JoinType.InnerJoin) 
      .Add(Expression.Eq("pt.PetTypeName", petType)) 
      .Add(Expression.Eq("po.PersonGender", gender)) 
      .List<Pet>(); 

非常感謝您的幫助!

+0

嘗試移動pt.PetTypeName一行,就在該表的聯接下。沒有更多信息,我很難幫助更多。你應該看看正在生成的SQL,看看它是否顯而易見。 – 2010-03-06 16:18:03

回答

1

是不是有沒有使用Hibernate/Java持久性查詢語言來執行查詢的原因?

select p from Pet p 
join p.owner o 
where o.gender = :gender 
and p.type.name = :petType 
order by p.birthday 
+0

謝謝,這個作品很棒! – Solomon 2010-03-06 17:26:47

+0

很高興聽到這一消息。 :) – 2010-03-06 17:41:55