繁体   English   中英

具有多对多关系的 JPQL 查询

[英]JPQL query with many-to-many relationship

我们有 2 个实体 Technology 和 Project 具有多对多关系,它们与附加的参考表链接。

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 查询来检索具有项目集合的技术,以避免延迟初始化异常。

问题是:必须如何修改查询才能获得在某个项目中使用的技术列表? (查询findAllByProject(10)必须返回技术 1000 和 2000)。

我不能在这里使用本机 SQL 查询,因为我需要join fetch来获取项目集合。

通过在项目实体上添加 where 子句。

@Query("select t from Technology t left join fetch t.projects p where p.id=10")
List<Technology> findAllByProject10();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM