0

我目前有以下查询。我知道这可以用作 SQL 查询,但是因为我使用的是 javax.persistence 中的 EntityManager,所以它需要 JPQL。而且我不知道JPQL。如果有一种方法可以在 JPQL 中重写它,那就太好了。

Query q = entityManager.createNativeQuery("
    WITH original AS (SELECT *, COUNT(ref) as c FROM Tri WHERE triH IN :list GROUP BY ref
    SELECT ref FROM original WHERE c = :amtTri");
q.setParameter("list", posTri);
q.setParameter("amtTri", posTri.size());

实际查询:

WITH original AS (SELECT *, COUNT(ref) as c FROM Tri WHERE triH IN :list GROUP BY ref
SELECT ref FROM original WHERE c = :amtTri

我正在尝试使用存储库方法在 Quarkus 项目中执行此操作,如果有使用它的方法,那也可以

提前致谢!

4

1 回答 1

0

我相信使用 EntityManager 并不意味着您必须使用 JPQL,您也可以使用 Native Queries。

由于您的查询看起来不那么简单(至少对我而言),我会使用本机查询而不是 JPQL。您可以使用 javax.persistence 中的 EntityManager 运行本机查询。本教程解释了如何做到这一点。

于 2022-03-01T21:24:19.093 回答