2017-02-15 40 views
0

我的Spring Boot JPA项目中有三个实体。内部加入弹簧引导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 |


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

FX:

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 

如何添加特定的内部连接选择我的春天启动的JPA存储库(如果可能的话)?

+2

的可能的复制[如何定义JPA库查询与注册](http://stackoverflow.com/questions/13154818/how-to-define-a-jpa-repository-query-with-a-join) – Strelok

+1

显然JPQL加入了关系,所以没有发布实体及其关系,没有什么可以评论的 –

回答

-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()方法