Java 如何在jpa中使用ISNULL
我有一个表test1,它有一个列的数量。我想检索所有列的总和。所以我使用这样的SUM函数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
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吗?与ISNULL或NVL命令相当的JPQL是COALESCE命令。
因此,您可以使用从测试cda中选择COALESCE(总和(cda.amount),0)