我可以将这个Mysql查询转换为JPA吗?

我对SQL非常熟悉,但对Java Persistence API却很新。我通过Play Framework使用JPA。 我有以下MySql查询,如果我可以,我想转换为纯JPA代码:
SELECT a.id, b.id
FROM Rankable a
INNER JOIN Rankable b on a.id < b.id
WHERE 
  a.category_id = ? AND b.category_id = ?
  AND NOT EXISTS (
    SELECT *
    FROM Comparison c
    WHERE c.lower in (a.id, b.id))
  AND NOT EXISTS (
    SELECT *
    FROM Comparison c
    WHERE c.higher IN (a.id, b.id))
ORDER BY a.id * rand()
LIMIT 1;
此查询的目的是从Rankable表中选择两行,但请确保比较表中不存在此特定对。 从Play / JPA中调用这样一个有点复杂的查询的最佳方法是什么?     
已邀请:
可以在JPA中进行自我加入。 看看这个例子 从例子中
    @NamedQuery(name="siblings", query="select distinct sibling1 "
    + "from Deity sibling1, Deity sibling2 where "
    + "sibling1.father = sibling2.father "
    + "and sibling1.mother = sibling2.mother "
    + "and sibling2 = ?1 and sibling1 <> ?1"),
    

要回复问题请先登录注册