java - 使用 SUM 和 COUNT 的 JPQL native 查询

标签 java sql jpa eclipselink jpql

我正在尝试运行以下代码:

public BigDecimal valuate(String searchTerms, String categoryPath) {
    Query query = em.createNativeQuery("SELECT SUM(maxBidAmount) / COUNT(maxBidAmount) FROM Item WHERE MATCH(title) AGAINST(':searchTerms') AND categoryPath=':categoryPath'", Double.class);
    query.setParameter("searchTerms", searchTerms);
    query.setParameter("categoryPath", categoryPath);
    double value = (double) query.getSingleResult();
    return new BigDecimal(value);
}

当我这样做时,我得到以下异常:

Exception Description: Missing descriptor for [class java.lang.Double].

当我删除 Double.class 时,我得到了一个不同的异常。

所以,我只是想知道在 JPQL 中使用 COUNT 和 SUM 的正确方法。

最佳答案

如果 SQL 有效,则无需在查询定义中指定 Double.class - 只需使用 em.createNativeQuery(SQLString); 当您希望 JPA 提供程序从结果构建实体时使用返回类型,但在这种情况下您需要原始数据。

关于java - 使用 SUM 和 COUNT 的 JPQL native 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8959771/

相关文章:

java - 如何解决 HTTP Status 500 - ContainerException java.lang.NoSuchMethodError 错误

java - openjpa元模型工具不生成元模型

java - 感知器训练的 Delta 训练规则

c++ - 从 MySQL 检索时间戳数据到 C++

mysql - SQL 查询。我怎样才能合并这两个表?

sql - 时间表数据库架构

java - 使用 @MappedSuperclass 注释的 Hibernate 实体多态性

java - JDBC获取外键引用的关系+属性

java - 尝试列出对象时,AmazonS3 客户端 org.xml.sax.SAXParseException

java - 如何使用 Spring Rest Hibernate 获取如图所示的 JSON 输出