很奇怪的问题!牛人帮解决下,谢谢,我把分梭了
public PageInfo queryForPage(int pageSize,int page,TbStelMeg sm,TbBeg beg)//通过具体信息和sdType获得分页信息
{
this.stelmeg = sm;
this.tbbeg=beg;
final String hql = "from TbBeg where stelSport=? and tbStelMeg.stelId=?";
// final String hql = "from TbBeg where tbStelMeg.stelId=? and sdType=?"; //查询语句
System.out.println("00000000000");
Object[] obj={beg.getStelSport(),sm.getStelId()};
System.out.println("1111");
int allRow = this.getHibernateTemplate().find(hql,obj).size(); //总记录数
int totalPage = PageInfo.countTotalPage(pageSize, allRow);//设置每页显示几条 2条
final int offset = PageInfo.countOffset(pageSize, page); //当前页开始记录
final int length = pageSize;
final int currentPage = PageInfo.countCurrentPage(page);
System.out.println("22222");
List list = getHibernateTemplate().executeFind(new HibernateCallback()
{
public Object doInHibernate(Session session) throws HibernateException,SQLException
{
Query query = session.createQuery(hql)
.setParameter(0, stelmeg.getStelId())
.setParameter(1, tbbeg.getSdType());//Hibernate的分页精髓!~
query.setFirstResult(offset);
query.setMaxResults(length);
List<TbBeg> list = query.list();
return list;
}
});
PageInfo pageinfo = new PageInfo();
pageinfo.setPageSize(pageSize);
pageinfo.setCurrentPage(currentPage);
pageinfo.setAllRow(allRow);
pageinfo.setTotalPage(totalPage);
pageinfo.setList(list);
pageinfo.init();
return pageinfo;
}
我的一个方法,然后调用时出现的异常:
log4j:WARN No appenders could be found for logger (org.springframework.context.support.FileSystemXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer
at org.hibernate.type.StringType.toString(StringType.java:44)
at org.hibernate.type.NullableType.toLoggableString(NullableType.java:168)
at org.hibernate.pretty.Printer.toString(Printer.java:65)
at org.hibernate.engine.QueryParameters.traceParameters(QueryParameters.java:256)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:149)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1106)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at xf.dragon.dao.impl.Beg_dao$1.doInHibernate(Beg_dao.java:166)-->这是我的方法出错的地方-->List list = query.list();用范型也不好使
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
at org.springframework.orm.hibernate3.HibernateTemplate.executeFind(HibernateTemplate.java:343)
at xf.dragon.dao.impl.Beg_dao.queryForPage(Beg_dao.java:155)
at LocalTest.TestDemo.main(TestDemo.java:39)