2010-06-04 19 views
0

我正在嘗試創建一個HQL查詢,它將根據用戶篩選樹。Nhibernate篩選樹權限

在樹根上我有AllowUsers和AllowRoles,並在每個節點上有DenyUsers和DenyNodes。我可以用

select e 
from oStructureMenu e 
    join fetch e.Nodes n 
where e.Id = :id 
    and :user in (select u from e.AllowUsers u) 

過濾器對在樹的根用戶,但是當我添加

and :user in (select f.DenyUsers from n f) 

創建的SQL有語法錯誤

而且我不知道我怎麼我要比較角色的用戶角色允許或拒絕角色集合

任何幫助將不勝感激...

+0

什麼是(從f ** n ** f選擇fDenyUsers)? – 2010-06-04 11:34:00

+0

你是什麼意思「比較角色」? – 2010-06-07 08:22:13

回答

1

不應該是

and :user in (select f from n.DenyUsers f) 
+0

不,拒絕用戶在不在根節點 – 2010-06-04 11:39:47

+0

的節點中,但我確實將DenyUsers的位置更改爲n,而不是f,它工作正常,謝謝!在我的另一個問題上,我將如何比較HQL中角色集合的內容? – 2010-06-04 11:42:52