我有以下课程:
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'
但是再次,它不起作用。)
答案 0 :(得分:2)
你在找这个:
select u.username
from User u
where :role in elements(u.roles)