我有一个具有列数量的表test1。我想检索所有列的总和。所以我正在使用像这样的SUM函数

SELECT SUM(cda.amount)FROM test cda

如果表为空,则为空

等效的JPA代码如下

如果有n
public Double sumAmount()
    {
        Query query=entityManagerUtil.getQuery("SELECT SUM(cda.amount)FROM test cda");

        Object result=query.getSingleResult();
        return (Double)result;
    }

现在,在我的 Controller 中,我将此金额添加到主体中。
Double total=prinicipal+daoImpl.sumAmount();

由于sumAmount()返回null,所以我在这里添加prinicipal+daoImpl.sumAmount();时会得到NULLPOINTEREXCEPTION

所以我想如果数量为null则返回0,所以尝试ISNULL和IFNULL都这样
SELECT ISNULL(SUM(cda.amount),0) FROM test cda

但这给了我以下错误
No data type for node: org.hibernate.hql.ast.tree.MethodNode
 \-[METHOD_CALL] MethodNode: '('
    +-[METHOD_NAME] IdentNode: 'ISNULL' {originalText=ISNULL}

所以任何人都可以告诉我如何在JPA中正确使用ISNULL

最佳答案

中的 ISNUL NVL 命令等效于合并命令。
所以你可以使用SELECT coalesce(SUM(cda.amount),0) FROM test cda

09-29 22:35