2014-12-06 148 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