为ManyToOne Association编写HQL查询

时间:2011-02-01 13:20:00

标签: java hibernate jpa hql

斐伊川, 我有两个双向关联实体。

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查询,该查询检索与特定userId关联的项目列表。

我正在写一些这样的东西,但没有用。

from Project P where P.projectsUsers.userId=1

尝试执行此操作时,我收到异常“非法尝试取消引用收集” 请你帮助我解决问题吗?

先谢谢

关心 Phani Kumar

1 个答案:

答案 0 :(得分:3)

首先,“与特定userId关联的项目列表”没有意义,因为您具有一对多/多对一关系,因此每个用户可以关联不超过一个项目

检索该项目的查询如下:

SELECT u.project FROM users u WHERE u.userId = ?