java.math.BigInteger cannot be cast to com.labmanager.fw.data.bo.Lab

jcmx 2013-02-23 07:21:02

package com.labmanager.fw.JUNIT;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.hibernate.SQLQuery;
import org.hibernate.Session;
import org.hibernate.Transaction;

import com.labmanager.fw.data.bo.Lab;
import com.labmanager.fw.util.HibernateSessionFactory;

public class PageDeviceTest{

public List getResultCount(String table){
Session session=HibernateSessionFactory.getSession();
Transaction ts=session.beginTransaction();
List list=new ArrayList();
String sql="select count(*) from "+table+" where id > 0";
try{
ts.begin();
SQLQuery sqlQuery=session.createSQLQuery(sql);
list=sqlQuery.list();
ts.commit();
System.out.println("查询到数据"+list.get(0).toString()+"条");
}catch(Exception e){
ts.rollback();
e.printStackTrace();
}finally{
HibernateSessionFactory.closeSession();
}
return list;
}
public void dispaly(){
List list=new ArrayList();
list=this.getResultCount("tblab");
Iterator it=list.iterator();
while(it.hasNext()){
System.out.println(((Lab)it.next()).getName());
}
}
public static void main(String[] args){
new PageDeviceTest().dispaly();
}

}




&

Console输出:

查询到数据20条
Exception in thread "main" java.lang.ClassCastException: java.math.BigInteger cannot be cast to com.labmanager.fw.data.bo.Lab
at com.labmanager.fw.JUNIT.PageDeviceTest.dispaly(PageDeviceTest.java:40)
at com.labmanager.fw.JUNIT.PageDeviceTest.main(PageDeviceTest.java:44)


&
Lab类是Hibernate inverse 生成的。
主键类型为Short
配置文件如下
<hibernate-mapping>
<class name="com.labmanager.fw.data.bo.Lab" table="tblab" catalog="labmanager">
<id name="id" type="java.lang.Short">
<column name="id" />
<generator class="identity"></generator>
</id>
<many-to-one name="currriculum" class="com.labmanager.fw.data.bo.Currriculum" fetch="select">
<column name="curriculumId" />
</many-to-one>
<property name="name" type="java.lang.String">
<column name="name" />
</property>
<property name="profile" type="java.lang.String">
<column name="profile" />
</property>
<property name="deviceNumbers" type="java.lang.Short">
<column name="deviceNumbers" />
</property>
<property name="isOpen" type="java.lang.String">
<column name="isOpen" length="2" />
</property>
</class>
</hibernate-mapping>


错误实在搞不明白。网上也看了搞了很久没辙了。。。
...全文
307 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
puguanglv0526 2015-05-24
  • 打赏
  • 举报
回复
。。。好多代码。。幸好有finereport这种不用编程的报表软件。。不然我就死定了。。
jcmx 2013-02-23
  • 打赏
  • 举报
回复
嗯 这个问题看出来了。CtrlZ没注意。。。还是有其他问题。
lvzg_005 2013-02-23
  • 打赏
  • 举报
回复
System.out.println(((Lab)it.next()).getName()); 强转错误。 sql: String sql="select count(*) from "+table+" where id > 0"; 查询结果是个number,不是lab对象

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧