2016-02-24 47 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

不客气,很高兴我帮了忙。 –