`

java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer

阅读更多
异常信息:
java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.Integer


由于Hibernate3.2.5版本的(select count(*))查询返回的结果是个Long 不能强制转换:
public int getAllUserNum(){
		Session session = HiberSF.getSession();
		try {
			session.getTransaction().begin();
			
			Long lo = (Long)session.createQuery("select count(*) from User").uniqueResult();
	       		//解决办法把long型拆分字符串进行转换
			Integer sum = new Integer(String.valueOf(lo));
			session.getTransaction().commit();
			return sum;
		} catch (RuntimeException e) {
			session.getTransaction().rollback();
			throw e;
			// TODO: handle exception
		} finally {
			session.close();
		}
	}




第二种办法:
public int getAllUserNum(){
		Session session = HiberSF.getSession();
		try {
			session.getTransaction().begin();
			//解决办法直接调用:HashCode();
                        //count(*)也可以理解为返回一个Object的对象,然后直接
                        //调用 hashCode();
			Integer lo = (Integer)session.createQuery("select count(*) from User").uniqueResult().hashCode();	
			session.getTransaction().commit();
			return sum;
		} catch (RuntimeException e) {
			session.getTransaction().rollback();
			throw e;
			// TODO: handle exception
		} finally {
			session.close();
		}
	}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics