使用来自oneToOne连接表的命名参数的JPA查询

时间:2016-02-24 14:05:34

标签: jpa join

我正在尝试创建一个查询,该查询从当前表和列上连接的表引用WHERE中的字段。从参与表中的单个参数创建查询没有问题。

@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;

Event实体有一些我想在查询中使用的字段。例如,eventDate或eventType。

我想要像WHERE Participation.userID = 123 AND Event.eventType =" meeting"使用JPA查询而不是SQL。如何扩展上面的简单命名查询以包括来自连接表的比较? 到目前为止,我还没有能够使这个工作,所以任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

这是一个非常简单的要求,我建议你阅读一些基本的JPA教程。

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