Hibernate统一访问接口实现的问题

凌风羽化 发布于 2013/11/28 10:38
阅读 384
收藏 1

下面是我从书上看到的代码,结果报错:Cannot cast from Object to long 请问如何解决。

/** 统计指定类的所有持久化对象 */
	public int countAll(String clazz) { final String sql = "select count(*) from " + clazz + "as a";
		Long count = (long)getHibernateTemplate().execute(new HibernateCallback() {
			public Object doInHibernate(Session session)throws HibernateException {
				Query query = session.createQuery(sql);
				query.setMaxResults(1);
				return query.uniqueResult();
			}
		});
		return count.intValue();
	}



加载中
0
l
langaili
把小写long换成大写Long
凌风羽化
凌风羽化
想起来了,好久没写java了,给忘了,Long是对象类型,是long的包装类。
0
l
langaili
应该是返回BigDecimal对象了
0
source&code
source&code
long 是原生数据类型,Object是对象当然出现cast异常啊 亲,强制转换为Long对象,呃,认真点···
source&code
source&code
回复 @李香进 : 相信自己啊,书上不一定就对,这书哎害你不浅···建议你看看java的源码对你或许有帮助,多想想比如强制转换系统替你做了什么,光会用不行,hibernate框架用得不好性能非常差,这也是很多人说这框架不好的原因
凌风羽化
凌风羽化
我知道没法转,但是书上这么写。不知道有什么方法间接实现。
0
davidpark
davidpark
我也用过跟你一模一样的接口,没出现什么问题,请问楼主用的哪本书上的例子
凌风羽化
凌风羽化
《大型门户网站是这样炼成的》,电子工业出版社出版的,一本实战例子。
0
凌风羽化
凌风羽化

引用来自“langaili”的答案

把小写long换成大写Long
谢谢了,当时没注意,写错了,一直没找到原因。
0
r
ranran1009

long是个普通的数据类型,Long是经过封装的,可以和类一样使用,

long和Long、int和Interger等等是一样的道理。

返回顶部
顶部