Java 如何在Spring Boot中从自定义联接查询中获取结果
我有四张桌子 它们每个都有实体类、DTO和存储库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
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);
}
假定
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
}