2010-06-04 47 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