HQL如何查询String的ElementCollection

Thi*_*ara 6 java hibernate hql jdbc

我喜欢上课

public User{
   Long id;
   Set<String> roles;
}
Run Code Online (Sandbox Code Playgroud)

如何查询User具有角色的所有对象"ADMIN"

编辑:

我正在使用Hibernate 3.0.5.并尝试了大多数明显的方法.

from Users where roles in('ADMIN')给出了JDBC错误. from Users u where u.roles in('ADMIN')给出一个类强制转换异常

我认为这可能是这个特定版本的hibernate的一个问题.

Ske*_*eve 22

我找到了解决方案:

"from User as user where 'ADMIN' in elements(user.roles)";
Run Code Online (Sandbox Code Playgroud)

不知怎的,hql函数value()必须帮助解决这个问题,你也可以尝试一下,但上面的hql查询对我有用.

  • 这应该是选择的答案,因为另一个更改了Set <String>中的模型,甚至没有确认它. (4认同)
  • 谢谢,我已经搜索了很多答案。这是唯一正确的 (2认同)
  • 很好的答案,古老但金子 (2认同)