public int getRows() throws HibernateException {
int totalRows = 0;
String queryString = "select count(*) from User as c";
Session session = SessionManager.currentSession();
totalRows = ((Integer) session.iterate(queryString).next()).intValue();
return totalRows;
}

解决方案 »

  1.   

    这样:
    List list = session.find( "select count(p.id) from Person p" );
    很显然,如果使用count(id)的话,hql解析器是不会知道id是什么的.
      

  2.   

    楼主应该把思想转过弯来:hql是"面向对象"的,你操作的不是数据表,而是java对象.
      

  3.   

    谢谢,你的回答很好,十分谢谢还有点想请教,我想取最大值select max(id) from table是不是不能这样用了啊,
    我用了这个后,它没有执行select max(id) from table,
    而是把对象全部取出来了不知道我想实现“取最大值”能有什么方法,谢谢了
      

  4.   

    Query q = session.createQuery("select max(customer.id) from Customer customer ");
    List results = q.list();
    Integer id = (Integer)results.get(0);
      

  5.   

    这段代码是我执行后贴出来的。
    msn:[email protected]