2014-12-06 303 views
3

我有一个具有塔amount.I表TEST1要检索所有columns.So的总和我使用这样的如何使用ISNULL在JPA

SELECT SUM(cda.amount)FROM test cda 

SUM函数如果表空,那么它给了我零

等效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(); 

由于sumAmount()回报null所以我得到NullPointerException异常而在这里添加prinicipal+daoImpl.sumAmount();

所以我想返回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} 

所以,有谁能够告诉我如何在为COALESCE命令来使用正确ISNULL在JPA

回答

10

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