如何在jpa中使用ISNULL

Spr*_*ner 4 java spring hibernate jpa

我有一个表test1有列数量.我想检索所有列的总和.所以我使用这样的SUM函数

SELECT SUM(cda.amount)FROM test cda
Run Code Online (Sandbox Code Playgroud)

如果表是空的,那么它给我null

等效的JPA代码如下

如果有n

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

        Object result=query.getSingleResult();
        return (Double)result;
    }
Run Code Online (Sandbox Code Playgroud)

现在在我的控制器中,我将此金额添加到委托人;

Double total=prinicipal+daoImpl.sumAmount();
Run Code Online (Sandbox Code Playgroud)

作为sumAmount()返回,null所以我在这里添加NULLPOINTEREXCEPTIONprinicipal+daoImpl.sumAmount();

所以我想如果金额为空则返回0,所以尝试ISNULL和IFNULL都是这样的

SELECT ISNULL(SUM(cda.amount),0) FROM test cda
Run Code Online (Sandbox Code Playgroud)

但在这里它给了我以下错误

No data type for node: org.hibernate.hql.ast.tree.MethodNode 
 \-[METHOD_CALL] MethodNode: '('
    +-[METHOD_NAME] IdentNode: 'ISNULL' {originalText=ISNULL}
Run Code Online (Sandbox Code Playgroud)

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

Nul*_*ull 18

ISNULNVL命令相同的是coalesce命令.所以你可以使用SELECT coalesce(SUM(cda.amount),0) FROM test cda