首页 > 解决方案 > JPQL,通过主键获取JoinTable中定义的所有ManyToMany关系

问题描述

我有两个实体ProjectEmployee. 它们在 Jointable 中具有多对多关系。给定员工的唯一主 ID,我将如何找到其所有相关项目?

我尝试了类似的方法,但这给了我一个RunTimeException声明它无法提取ResultSet.

  @Query("SELECT new packagename.Project(project.id, moreFields..." +
          "FROM Project project, Employee employee" +
          "WHERE employee.id = :id AND project IN (employee.projects))
  List<Project> findByEmployeesEmailInOneRequest(@Param("id") long id);

标签: sqljpql

解决方案


所有你需要的是

select p from Employee e join e.projects p where e.id = :id`

或者,无需任何查询

Set<Project> projects = em.find(Employee.class, id).getProjects();

推荐阅读