2013-11-29 40 views
1

我需要通過連接多個表在一個實體類中構建以下查詢。如何編寫jpa查詢以加入多個表

SELECT t1.column_id_1 
    FROM table1 t1, 
     Table2 t2, 
     Table3 t3, 
     Table4 t4, 
     Table5 t5 
WHERE  t1.COLUMN_ID_1 = t2. COLUMN _ID_1 
     AND t2.COLUMN_ID_2 = t3. COLUMN_ID_2 
     AND t3.COLUMN_ID_3 = t4. COLUMN_ID_3 
     AND t4.COLUMN_ID_4 = t5. COLUMN_ID_4 

請分享一些想法

回答

0

這取決於你的模型是如何映射到數據庫。例如,如果T1被映射到A類和T2映射到B類和A聲明不知何故像:

@Entity @Table(name = "t1") 
public class A { 
    @ManyToOne @JoinColumn(name = "COLUMN_ID_1") 
    private B b; 
} 

@Entity @Table(name = "t2") 
public class B { 
    @Id @Column(name = "COLUMN_ID_1) 
    private Integer id; 
} 

然後在JPQL你只寫

select b.id 
from A a 
join a.b as b 

等另一表。

+0

我們可以使用secondaryTables註釋做它嗎? – lpriya

+0

是的,你可以。根據您的需求還有很多其他方法。 –

+0

你可以分享如何使用輔助表做到這一點。我想添加table1實體內的所有映射。我可以這樣做嗎 – lpriya