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);