【问题标题】:inner joins in spring boot jpa repositoriesspring boot jpa 存储库中的内部连接
【发布时间】:2017-07-04 06:42:06
【问题描述】:

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

A_Ent


| A_field1 | A_field2 | A_field3 |


B_Ent


| B_field1 | B_field2 | B_field3 |


C_Ent


| C_field1 | C_field2 | C_field3 |


我想在某些存储库中使用内部连接创建查询。

效果:

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

如何将特定的内部连接选择添加到我的 Spring Boot jpa 存储库(如果可能)?

【问题讨论】:

标签: java spring jpa spring-boot inner-join


【解决方案1】:

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

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

您必须记住,这将是一个投影,因此您将获得Object[]List<Object[]>,具体取决于您在查询中分别使用uniqueResult()list() 方法

【讨论】: