在HQL中查询标量集合

时间:2010-08-06 10:55:15

标签: java hibernate orm collections hql

我有以下课程:

class User {
String username;
@CollectionOfElements
private Set<String> roles = new HashSet<String>();
[many more things here]
}

我想写一个HQL查询来检索所有用户的用户名和角色。

Query query = session.createQuery("select distinct u.username, u.roles from User u");

但它不起作用,它抛出以下异常:

org.hibernate.QueryException: not an entity [select distinct u.username,u.roles from com.eyeprevent.domain.users.User u]

抱怨u.roles不是实体。

我怎样才能实现我想要的目标? (同样可以查询where u.roles='arole'但是再次,它不起作用。)

1 个答案:

答案 0 :(得分:2)

你在找这个:

select u.username 
  from User u
 where :role in elements(u.roles)