簡體   English   中英

休眠查詢返回null

[英]Hibernate query returns null

我在java-hibernate中有此查詢,我想返回此結果。 但返回null。 我該如何解決?

BigDecimal totalbalance = null;
Query query = session.createQuery("select sum(beforeBalance) from DepositTransaction");
totalbalance = (BigDecimal) query;

return new BigDecimal(totalbalance+"");

您的HQL語法有點錯誤。 嘗試以下方法:

BigDecimal totalbalance = null;
String theQuery = "select sum(dt.beforeBalance) from DepositTransaction dt";
Query query = session.createQuery(theQuery);
totalbalance = (BigDecimal) query.getSingleResult();

return totalbalance;

假定您的DepositTransaction類具有一個名為beforeBalance的字段, beforeBalance具有getter方法。

首先,您必須執行查詢:

List<BigDecimal> result = (List<BigDecimal>)query.list();

那你要檢查一下結果

if (result.length()!=0){
   return result.get(0)
}
return null;

嘗試這個,

totalbalance = (BigDecimal) query.getSingleResult();
return totalbalance;

代替

totalbalance = (BigDecimal) query;

看起來像本機查詢,您應該使用createNativeQuery。 您還應該只查找單個結果,因此請使用getSingleResult

BigDecimal totalbalance = null;
String yourQuery = "select sum(dt.beforeBalance) from DepositTransaction dt";
Query query = session.createNativeQuery(yourQuery);
return new BigDecimal((BigDecimal) query.getSingleResult());

使用SQLQuery對象的方法:

String query = "select sum(beforeBalance) from DepositTransaction";
BigDecimal totalBalance = (BigDecimal)session.createSQLQuery(query).list().get(0);
return totalBalance;

試試這個totalbalance = (BigDecimal)query.uniqueResult();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM