考虑这样一个问题,用户与权限之间是多对多的关系,他们使用连接表进行关系,连接表单独成一个类为userAuthority.class例如以下是连接表的结构:
id:1 userId:3 authorityId:4
这样是说明3号用户拥有4号权限。
现在,我们给出用户a与权限b的对象(注意不是ID),需要一次查询就将该记录查询出来,而不是现将该3号用户的权限都找出来,在将4号权限的用户找出来,取交集。
使用以下方法
List list=session.createCriteria(userAuthority.class).add(Restrictions.eq("user",a)).add(Restrictions.eq("authority",b)).list();
具体方法可见《疯狂javaEE》第四版 489页。