我们有两个实体技术和项目与多对多的关系,这是与一个额外的参考表。
technologies
id name
1000 | digging
2000 | drilling
projects
id name
10 | London
20 | Madrid
technologies_projects
tech_id project_id
1000 | 10
2000 | 10
1000 | 20我可以使用这样的查询从db撤回技术:
@Query("select t from Technology t left join fetch t.projects")
List<Technology> findAll();使用left join fetch子句的JPQL查询必须用于retreive技术和项目集合,以避免延迟初始化异常。
的问题是:--如何修改查询--获取特定项目中使用的技术列表?(查询findAllByProject(10)必须返回技术1000和2000)。
我不能在这里使用原生SQL查询,因为我需要join fetch来获取项目的集合。
发布于 2020-05-17 04:41:43
通过在项目实体上添加where子句。
@Query("select t from Technology t left join fetch t.projects p where p.id=10")
List<Technology> findAllByProject10();https://stackoverflow.com/questions/61846836
复制相似问题