[英]Hibernate query returns null
I have this query in java-hibernate and I want to return this result. 我在java-hibernate中有此查询,我想返回此结果。 But returns null.
但返回null。 How can I fix it?
我该如何解决?
BigDecimal totalbalance = null;
Query query = session.createQuery("select sum(beforeBalance) from DepositTransaction");
totalbalance = (BigDecimal) query;
return new BigDecimal(totalbalance+"");
Your HQL syntax is a bit off. 您的HQL语法有点错误。 Try this instead:
尝试以下方法:
BigDecimal totalbalance = null;
String theQuery = "select sum(dt.beforeBalance) from DepositTransaction dt";
Query query = session.createQuery(theQuery);
totalbalance = (BigDecimal) query.getSingleResult();
return totalbalance;
This assumes that your DepositTransaction
class has a field called beforeBalance
with a getter method. 假定您的
DepositTransaction
类具有一个名为beforeBalance
的字段, beforeBalance
具有getter方法。
first you have to execute the query: 首先,您必须执行查询:
List<BigDecimal> result = (List<BigDecimal>)query.list();
Then you have to check the result 那你要检查一下结果
if (result.length()!=0){
return result.get(0)
}
return null;
Try this, 尝试这个,
totalbalance = (BigDecimal) query.getSingleResult();
return totalbalance;
instead of 代替
totalbalance = (BigDecimal) query;
As that look like a native query you should use createNativeQuery. 看起来像本机查询,您应该使用createNativeQuery。 You should also only look for a single result so use getSingleResult
您还应该只查找单个结果,因此请使用getSingleResult
BigDecimal totalbalance = null;
String yourQuery = "select sum(dt.beforeBalance) from DepositTransaction dt";
Query query = session.createNativeQuery(yourQuery);
return new BigDecimal((BigDecimal) query.getSingleResult());
Approach using SQLQuery object: 使用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.