从列表中查找完全具有这些角色的具有角色(角色列表)的用户

时间:2020-02-18 17:33:15

标签: spring hibernate jpa nativequery

问题描述;

我有一组角色的用户模型(很多取代)。 我想从数据库(MySQL)用户中挑出我完全一样的角色(同样重要)。

这是我的查询(无法正常工作),如果我正在寻找具有管理员和用户角色的用户:

select * from login.user u join user_role ur on u.id = ur.user_id join role r on ur.role_id = r.id where r.name in ('ROLE_ADMIN', 'ROLE_USER')

等同于Hibernate(NativeQuerty);

select * from user u join user_role ur on u.id = ur.user_id join role r on ur.role_id = r.id where r.name in (:roles)

此查询返回具有管理员用户角色的用户。 在这种情况下,我是管理员用户。

如果询问具有管理员角色的用户,我希望只有管理员角色的用户。

1 个答案:

答案 0 :(得分:0)

您基本上是在说“在查询中给我所有具有'ROLE_ADMIN'或'ROLE_USER'或两者兼有的用户”。如果仅指定您感兴趣的角色,则将获得必要的结果。

这仅返回管理员,例如:

select * from login.user u join user_role ur on u.id = ur.user_id join role r on ur.role_id = r.id where r.name in ('ROLE_ADMIN')