日期:2014-05-20  浏览次数:20634 次

HQL的返回值该怎么取得?
比方说,我的hql语句是select count(cat) from Cat cat
或者是查询其他的聚集函数的话,他返回的也是List集合吗?
而事实上,这个语句应该只返回一个int型数据哦,请问该怎么获取这个返回值?

------解决方案--------------------

------解决方案--------------------
恩,返回的是LIST,上面的SQL查询返回的List里面只有一条记录,直接List.get(0)获取;
------解决方案--------------------
主要还是看调用什么方法

有返回单一值的

可以先instanceof看看返回什么类型

如果list,就按楼上说的
------解决方案--------------------
Query q = session.createQuery("select count(*) from table");
Integer i = (Integer)q.uniqueResult(); 

这样就可以了,要确保你的hql语句只返回一个对象,否则调用uniqueResult();会有异常。

------解决方案--------------------
探讨
Query q = session.createQuery("select count(*) from table");
Integer i = (Integer)q.uniqueResult();

这样就可以了,要确保你的hql语句只返回一个对象,否则调用uniqueResult();会有异常。

------解决方案--------------------
Query.uniqueResult();
------解决方案--------------------
返回的不是Integer而是Long,取决于Hibernate的版本,最新的都按Long返回.
------解决方案--------------------
Java code
Query  query = session.createQuery("select count(*) from table"); 
 List list = query.list()

------解决方案--------------------
探讨
Java codeQuery query = session.createQuery("select count(*) from table");
List list = query.list()

------解决方案--------------------
探讨
Query q = session.createQuery("select count(*) from table");
Integer i = (Integer)q.uniqueResult();

这样就可以了,要确保你的hql语句只返回一个对象,否则调用uniqueResult();会有异常。

------解决方案--------------------
Query query = session.createQuery("select count(*) from table"); 
 List list = query.list();
Integer i = (Integer)list.get(0);
------解决方案--------------------
探讨
Query query = session.createQuery("select count(*) from table");
List list = query.list();
Integer i = (Integer)list.get(0);

------解决方案--------------------
探讨
Query q = session.createQuery("select count(*) from table");
Integer i = (Integer)q.uniqueResult();

这样就可以了,要确保你的hql语句只返回一个对象,否则调用uniqueResult();会有异常。

------解决方案--------------------
探讨
Query query = session.createQuery("select count(*) from table");
List list = query.list();
Integer i = (Integer)list.get(0);