Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在jpa中使用ISNULL_Java_Spring_Hibernate_Jpa - Fatal编程技术网

Java 如何在jpa中使用ISNULL

Java 如何在jpa中使用ISNULL,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我有一个表test1,它有一个列的数量。我想检索所有列的总和。所以我使用这样的SUM函数 SELECT SUM(cda.amount)FROM test cda SELECT ISNULL(SUM(cda.amount),0) FROM test cda 如果表是空的,那么它给我空值 等效的JPA代码如下所示 如果有n public Double sumAmount() { Query query=entityManagerUtil.getQuery("SELECT

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

SELECT SUM(cda.amount)FROM test cda
SELECT ISNULL(SUM(cda.amount),0) 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;
    }
现在,在我的控制人中,我将该金额添加到本金中

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

因此,如果金额为null,我想返回0,因此尝试了ISNULL和IFNULL,如下所示

SELECT SUM(cda.amount)FROM test cda
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吗?与ISNULLNVL命令相当的JPQL是COALESCE命令。 因此,您可以使用
从测试cda中选择COALESCE(总和(cda.amount),0)