Java spring boot jpa存储库中的内部联接

Java spring boot jpa存储库中的内部联接,java,spring,jpa,spring-boot,inner-join,Java,Spring,Jpa,Spring Boot,Inner Join,我的Spring Boot JPA项目中有三个实体 A\u Ent |A_字段1| A_字段2| A_字段3| B_ÈEnt |B_字段1| B_字段2| B_字段3| C\u Ent |C_字段1| C_字段2| C|U字段3| 我想在一些存储库中使用innerjoin创建查询 外汇: 如何将特定的内部联接选择添加到spring boot jpa存储库(如果可能)?我认为您需要在JPQL查询中使用旧的联接样式(我假设您必须通过非主键/外键联接): 您必须记住,这将是一个投影,因此您

我的Spring Boot JPA项目中有三个实体

A\u Ent


|A_字段1| A_字段2| A_字段3|


B_ÈEnt


|B_字段1| B_字段2| B_字段3|


C\u Ent


|C_字段1| C_字段2| C|U字段3|


我想在一些存储库中使用innerjoin创建查询

外汇:


如何将特定的内部联接选择添加到spring boot jpa存储库(如果可能)?

我认为您需要在JPQL查询中使用旧的联接样式(我假设您必须通过非主键/外键联接):


您必须记住,这将是一个投影,因此您将获得一个
对象[]
列表
,这取决于您分别对查询使用
uniqueResult()
List()
方法

在关系之间可能存在JPQL联接的重复,因此无需过帐实体及其关系,没有什么可评论的
SELECT A_field1, B_field2 C_field3 FROM A_Ent AE
inner join B_Ent BE on (AE.field3 = BE.field3)
inner join C_Ent CE on (AE.field2 = CE.field2)
WHERE CE.field3 = 1
select AE.A_field1, BE.B_field2 CE.C_field3 
from A_Ent AE, B_Ent BE, C_Ent CE 
where (AE.field3 = BE.field3)
   and (AE.field2 = CE.field2)
   and CE.field3 = 1