2011-06-24 92 views
1

我想todo一個簡單的加入,以及只是比較兩個表中的ID ..NHibernate的HQL - 加入

我有我的組表,包含;

  • ID
  • 名稱
  • 等。

,我有包含我的GroupMap表;

  • ID
  • 羣ID
  • 項目ID

我的查詢需要GroupMap.ItemID,其目的是恢復組的列表,該ITEMID屬於在SQL我會做這個;

select Group.* from Group, GroupMap Where GroupMap.ItemID = '527' and Group.ID = GroupMap.GroupID; 

這將返回我的要求,我只是不能似乎複製它在HQL,我認爲這將是非常微不足道的。

謝謝, 詹姆斯

回答

8

您可以使用theta連接在HQL

select g from Group g, GroupMap m Where m.ItemID = '527' and g.ID = m.GroupID 
+0

完美工作,謝謝。 – Cadab

2

隨着HQL,你不認爲在表和這些表之間的關係方面,但在這些實體之間的實體和關聯。

所以,如果你有集團和GroupMap類(您已經映射到你的數據庫表),你必須寫你的HQL是這樣的:

from Group as g inner join g.Maps as m where m.ItemID = '527' 

也就是說,假設你集團實體有GroupMap實體的集合...

+0

謝謝,我還是想把我的頭周圍。 Group實體不包含GroupMaps的集合。是否有另一種方法來實現我的查詢? – Cadab