我有这样的课
public User{
Long id;
Set<String> roles;
}
如何查询角色为
User
的所有
"ADMIN"
对象
编辑:
我正在使用 Hibernate 3.0.5。并尝试了大多数明显的方法。
from Users where roles in('ADMIN')
给出 JDBC 错误。from Users u where u.roles in('ADMIN')
给出类转换异常我认为这可能是这个特定版本的 Hibernate 的问题。
我找到了解决方案:
"from User as user where 'ADMIN' in elements(user.roles)";
不知何故,hql 函数 value() 必须对此有所帮助,您也可以尝试一下,但是上面的 hql 查询对我有用。
您可以使用以下查询
"from User as user where user.id in (select user.id from Role as role left join role.user as user where role.name = 'ADMIN')"
这应该可以做到:
session.createQuery("from User where roles in ('ADMIN')");