【发布时间】:2011-08-29 19:56:06
【问题描述】:
我有两个类用户和角色,它们使用多对多关联相互映射。现在我正在尝试使用 Hibernate Criteria API 查询所有没有特定角色的用户。但我有点卡住了。
要查询具有特定角色的用户,我使用以下查询,效果很好。
Session session = getSessionFactory().getCurrentSession();
Criteria mainCrit = session.createCriteria(boClass);
return mainCrit.createAlias("roles", "r").add( Restrictions.eq("r.name", roleName)).list();
现在我有点困惑如何反转查询并获取所有没有特定角色的用户。如果可能的话,我想明确排除某个角色,并且不要查询使用 OR 链接它们的所有角色,因为以后可能会动态添加更多角色。
更新
为了更好地理解我的场景,您可以在 another question 中查看我尝试查询的关联。
另外我还要补充一点,Role类的name属性是一个Enum,不知道是不是很重要或者改变了查询数据库的方式。
【问题讨论】:
标签: java hibernate many-to-many criteria-api