postgresql 如何在JPA中使用EntityManager获取分数的MAX值

kt06eoxx  于 2023-08-04  发布在  PostgreSQL
关注(0)|答案(2)|浏览(163)

目前,当一个使用Spring的项目正在进行时,使用JDBC模板的DB搜索正在被修改为使用JPA。在这种情况下,使用JAP存储库是很麻烦的,所以我想使用实体管理器。我想使用实体管理器获取分数的最大值。
当我运行下面的代码时,我想输出具有该ID的项目中得分最高的项目的得分。

public Integer findByTraceId(String id) {
        String jpql = "SELECT MAX(Score) FROM item where id = :id";
        TypedQuery<Integer> query = em.createQuery(jpql, Integer.class);
        query.setParameter("id", id);
        return query.getResultList().get(0);
    }

字符串

c0vxltue

c0vxltue1#

您可以尝试“SELECT MAX(i.Score)FROM item i where i.id =:id”;

xzv2uavs

xzv2uavs2#

您可以使用以下查询,该查询使用子查询来查找给定项目的最大分数:

SELECT i1
FROM item i1
WHERE i1.Score = (SELECT MAX(i2.Score) FROM item i2 WHERE i2.id = :id)

字符串

相关问题