Написание HQL-запроса для ассоциации ManyToOne - PullRequest
1 голос
/ 01 февраля 2011

Hii, У меня есть две сущности с двунаправленной ассоциацией.

Project.java

class Project{

    int project_id;

    @OneToMany(mappedBy="project")
    private Set<Users> projectsUsers = new HashSet<Users>();

    //getters and setters and other fields

}

Users.java

class Users{ 

    int id;
    int userId;
    int project_id 

    @ManyToOne(fetch = FetchType.EAGER)
    @JoinColumn(name="project_id") 
    private Project project; 

    //getters and setters and other fields

}

Я хочу написать HQL-запрос, который извлекает список проектов, связанных с определенным идентификатором пользователя.

Я писал что-то подобное, но это не сработало.

from Project P where P.projectsUsers.userId=1

При попытке выполнить это я получаю исключение "незаконная попытка разыменования коллекции" Может ли кто-нибудь из вас помочь мне решить проблему?

Заранее спасибо

С уважением
Фани Кумар

1 Ответ

3 голосов
/ 01 февраля 2011

Прежде всего, «список проектов, связанных с определенным идентификатором пользователя» не имеет смысла, поскольку у вас есть отношение «один ко многим / много к одному», так что каждый пользователь может быть связан не более чем с однимproject.

Запрос для извлечения этого проекта выглядит следующим образом:

SELECT u.project FROM users u WHERE u.userId = ?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...