Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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
Java 如何在Spring Boot中从自定义联接查询中获取结果_Java_Spring Boot_Join_Spring Data Jpa_Spring Repositories - Fatal编程技术网

Java 如何在Spring Boot中从自定义联接查询中获取结果

Java 如何在Spring Boot中从自定义联接查询中获取结果,java,spring-boot,join,spring-data-jpa,spring-repositories,Java,Spring Boot,Join,Spring Data Jpa,Spring Repositories,我有四张桌子 它们每个都有实体类、DTO和存储库 public interface Interface_A extends JpaRepository< Entity_A, Integer> { Entity_A findByName(String name); } public interface Interface_B extends JpaRepository< Entity_B, Integer> { Entity_B findByNam

我有四张桌子 它们每个都有实体类、DTO和存储库

public interface Interface_A extends JpaRepository< Entity_A, Integer> {
      Entity_A findByName(String name);
}

public interface Interface_B extends JpaRepository< Entity_B, Integer> {
      Entity_B findByName(String name);
}
假定

  • 两个表与实体具有相同的名称
  • 实体A-->(id、名称)
  • 实体B-->(id、名称、辅助)

  • jpa存储库不是这样工作的。您必须在实体中指定联接,这样EntityA有一个类型为EntityB的字段,然后当您使用存储库加载它时,所有EntityA都将有EntityB已从数据库中获取是的,我知道在实际情况下,我有7个表和一个大查询。因此,我只想知道“如何通过仅更改存储库层从数据库获取自定义输出”,我插入了新的POJO类而不是实体A,但它不起作用。好的,所以您需要在方法上使用@query注释编写自己的查询,请参阅ie我几乎阅读了该文档。它没有关于join的解释。如果您只指定要使用本机查询,您只需编写本机sql,就可以执行任何需要的操作,甚至可以使用特定于db的函数
        public interface Interface_C extends JpaRepository< Entity_A, Integer> {
          Entity_A findByName(String name);
    
          @Query(value = "SELECT a.name,b.name FROM Entity_A a INNER JOIN Entity_B b ON a.id = b.aid )
          List<Entity_A> getDataFromJoin(); // insert code here 
        }