2016-02-24 80 views
1

我試圖創建一個查詢,從當前表和連接到列的表中引用WHERE中的字段。我從參與表中的單個參數創建查詢沒有問題。從oneToOne連接表使用命名參數的JPA查詢

@NamedQuery(name="Participation.byUserID", query="SELECT c FROM Participation c WHERE c.userID = :userID") 

這是最有趣的部分...在參與的實體,我有一個聯接:

@OneToOne(optional=false) 
@JoinColumn(name = "EventID", insertable = false, updatable = false) 
private Event event; 

事件實體有一些領域,我想在我的查詢中使用。例如,eventDate或eventType。

我想使用JPA查詢而不是SQL來參與WHERE Participation.userID = 123和Event.eventType =「meeting」。如何擴展上面的簡單命名查詢以包含來自連接表的比較? 到目前爲止,我還沒有能夠得到這個工作,所以任何幫助,將不勝感激。

回答

2

這是一個非常簡單的要求,我建議你通過一些基本的JPA教程。

SELECT c FROM Participation c WHERE c.userID = :userID and c.event.eventType = :eventType 
+0

謝謝,我沒看過幾個教程,只是沒有碰到這個組合......謝謝! –

+0

不客氣,很高興我幫了忙。 –