Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 使用jpa存储库查询多个表_Spring Boot_Spring Data_Spring Data Jpa_Jpql - Fatal编程技术网

Spring boot 使用jpa存储库查询多个表

Spring boot 使用jpa存储库查询多个表,spring-boot,spring-data,spring-data-jpa,jpql,Spring Boot,Spring Data,Spring Data Jpa,Jpql,假设我有3个实体-用户,技能,部门 我有对应于它们的存储库-UserRepository,SkillRepository,DepartmentRepository 我理解实体之间的关系映射,即一个多个实体,应在各自的实体类中指定。问题是我想在一个查询中使用所有3个实体。我该怎么做?单个存储库仅与一个实体关联,对吗?那么,我将如何/在何处编写它呢?因为有许多不同的方法来指定使用Spring数据JPA的查询,对此有各种各样的答案 也许你不必这么做。如果实体A引用B,而您只想用A获取Bs,只需使用A存

假设我有3个实体-
用户
技能
部门
我有对应于它们的存储库-
UserRepository
SkillRepository
DepartmentRepository


我理解实体之间的关系映射,即一个多个实体,应在各自的实体类中指定。问题是我想在一个查询中使用所有3个实体。我该怎么做?单个存储库仅与一个实体关联,对吗?那么,我将如何/在何处编写它呢?

因为有许多不同的方法来指定使用Spring数据JPA的查询,对此有各种各样的答案

  • 也许你不必这么做。如果实体
    A
    引用
    B
    ,而您只想用
    A
    获取
    B
    s,只需使用
    A存储
    A
    加载
    s并使用对象导航获取
    B
    s即可。您可以阅读有关“急切加载”和“惰性加载”的更多信息,了解如何控制这种情况

  • 如果希望在where条件中引用实体,可以在查询方法名称中使用属性路径:

  • 如果您使用的是
    @Query
    注释,那么您可以(几乎)用JPQL做任何您想做的事情。除此之外,您还可以导航属性以在where子句中使用它们


  • 通常,您会根据返回的主要实体将该查询放入匹配存储库。

    当您说我要在查询中使用所有3个实体时,您想做什么?用相关代码发布您的问题并寻求帮助。您的问题很模糊,请查阅SpringDataJPA文档以了解您想要什么