Запрос скалярных коллекций в HQL - PullRequest
3 голосов
/ 06 августа 2010

У меня есть следующий класс:

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 Ответ

2 голосов
/ 06 августа 2010

Вы ищете это:

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