2017-02-15 5 views
0

私はSpringブートJPAプロジェクトに3つのエンティティを持っています。スプリングブート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 |


いくつかのリポジトリで内部結合を使用してクエリを作成したいとします。

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

可能な複製(http://stackoverflow.com [とJPAリポジトリクエリに参加定義する方法]/questions/13154818/jpa-jpaリポジトリクエリの定義方法) – 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 

あなたはこの意志ということを忘れてはいけませんあなたはそれぞれのクエリにuniqueResult()またはlist()メソッドを使用しているかどうかによって、Object[]またはList<Object[]>なりますので、投影を可能