我有课
public User{
Long id;
Set<String> roles;
}
如何查询User
具有角色的所有对象"ADMIN"
编辑:
我正在使用休眠 3.0.5。并尝试了大多数明显的方法。
from Users where roles in('ADMIN')
给出 JDBC 错误。
from Users u where u.roles in('ADMIN')
给出一个类转换异常
我认为这可能是这个特定版本的休眠的问题。
我找到了解决方案:
"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')");