Query q = session.createQuery("select count(*) from table");
Integer i = (Integer)q.uniqueResult();
这样就可以了,要确保你的hql语句只返回一个对象,否则调用uniqueResult() 会有异常
1 getCurrentSession创建的session会和绑定到当前线程,而openSession不会。
2 getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭
Query query = this.getSessionFactory().getCurrentSession().createSQLQuery(sb.toString());
return query.list().size();
当上面一个抛出 异常时 可以尝试用下一个:
Session session=this.getHibernateTemplate().getSessionFactory().openSession();
return session.createQuery(hql).executeUpdate();