Я получил два класса User и Role, которые сопоставлены друг с другом, используя множество-много ассоциаций. Сейчас я пытаюсь опросить всех пользователей, у которых нет определенной роли, используя Hibernate Criteria API. Но я немного застрял.
Для запроса пользователей с определенной ролью я использую следующий запрос, который прекрасно работает.
Session session = getSessionFactory().getCurrentSession();
Criteria mainCrit = session.createCriteria(boClass);
return mainCrit.createAlias("roles", "r").add( Restrictions.eq("r.name", roleName)).list();
Теперь я немного запутался, как отменить запрос и получить всех пользователей, у которых нет определенной роли. Если возможно, я хочу явно исключить определенную роль и не запрашивать все роли, объединяя их в цепочку с ИЛИ, поскольку позже может быть динамически добавлено больше ролей.
UPDATE
Чтобы лучше понять мой сценарий, вы можете увидеть связь, которую я пытаюсь задать, в другой вопрос .
Кроме того, я бы также добавил, что свойством name класса Role является Enum, не знаю, важно ли это или изменяет способ запроса базы данных.