Java Hibernate查询返回null
我在JavaHibernate中有这个查询,我想返回这个结果。但是返回null。我怎样才能修好它Java Hibernate查询返回null,java,hibernate-criteria,Java,Hibernate Criteria,我在JavaHibernate中有这个查询,我想返回这个结果。但是返回null。我怎样才能修好它 BigDecimal totalbalance = null; Query query = session.createQuery("select sum(beforeBalance) from DepositTransaction"); totalbalance = (BigDecimal) query; return new BigDecimal(totalbalance+""); 您的HQ
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
的字段,该字段具有getter方法。首先您必须执行查询:
List<BigDecimal> result = (List<BigDecimal>)query.list();
试试这个
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)查询代码>您没有运行查询,只是尝试将查询对象强制转换到结果变量中是行不通的。您需要实际执行查询。
String query = "select sum(beforeBalance) from DepositTransaction";
BigDecimal totalBalance = (BigDecimal)session.createSQLQuery(query).list().get(0);
return totalBalance;