繁体   English   中英

HQL如何查询String的ElementCollection

[英]HQL how to query ElementCollection of String

我喜欢上课

public User{
   Long id;
   Set<String> roles;
}

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

编辑:

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

from Users where roles in('ADMIN')给出JDBC错误的用户。 from Users u where u.roles in('ADMIN')给出了类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')");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM