【新人求助】java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

qq_35394984 2016-10-25 06:59:57
SSH整合 查询数据库数据 做 分页 报错
(部分)
Exception occurred during processing request: Index: 0, Size: 0
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.rangeCheck(ArrayList.java:635)
at java.util.ArrayList.get(ArrayList.java:411)
at cn.zhs.daoImpl.BaseDaoImpl.getRowCount(BaseDaoImpl.java:33)
at cn.zhs.bizImpl.ClaimVoucherBizImpl.findByPage(ClaimVoucherBizImpl.java:69)
at cn.zhs.action.ClaimVoucherAction.searchClaimVoucher(ClaimVoucherAction.java:34)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)


BaseDaoImpl

package cn.zhs.daoImpl;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import cn.zhs.dao.BaseDao;
import cn.zhs.entiy.BizClaimVoucher;

public class BaseDaoImpl<T> extends HibernateDaoSupport implements BaseDao<T> {



//查询账单
@Override
public List<BizClaimVoucher> search() {

List<BizClaimVoucher> bizClaimVoucher = this.getHibernateTemplate().find("from BizClaimVoucher");

return bizClaimVoucher;
}
//分页查询
public List<T> findByPage(DetachedCriteria criteria, int pageNo, int pageSize){

return this.getHibernateTemplate().findByCriteria(criteria, (pageNo-1)*pageSize , pageSize);
}
//也数计算
@Override
public Long getRowCount(DetachedCriteria criteria) {


return (Long)this.getHibernateTemplate().findByCriteria(criteria).get(0);
}
}



ClaimVoucherBizImpl

package cn.zhs.bizImpl;

import java.util.Date;
import java.util.List;

import org.hibernate.criterion.DetachedCriteria;
import org.hibernate.criterion.Property;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.opensymphony.xwork2.conversion.impl.DateConverter;

import cn.zhs.biz.ClaimVoucherBiz;
import cn.zhs.biz.EmployeeBiz;
import cn.zhs.dao.BaseDao;
import cn.zhs.dao.EmployeeDao;
import cn.zhs.entiy.BizClaimVoucher;
import cn.zhs.entiy.SysEmployee;
import cn.zhs.util.PaginationSupport;

@Service
@Transactional
public class ClaimVoucherBizImpl implements ClaimVoucherBiz {

private BaseDao baseDao;

public BaseDao getBaseDao() {
return baseDao;
}

public void setBaseDao(BaseDao baseDao) {
this.baseDao = baseDao;
}

@Override
public List<BizClaimVoucher> searchClaimVoucherBiz() {
List<BizClaimVoucher> bizClaimVoucher = baseDao.search();

return bizClaimVoucher;
}

@Override
public PaginationSupport<BizClaimVoucher> findByPage(String sn,
String status, Date startDate, Date endDate, int pageNo,
int pageSize) {
System.out.println("@@@@@@@@ 来自 Biz impl @@@@@@@@@@@");
PaginationSupport<BizClaimVoucher> page = new PaginationSupport<BizClaimVoucher>();
if(pageNo > 1){
page.setCurrPageNo(pageNo);
}
if(pageSize > 0){
page.setPageSize(pageSize);
}
//條件查詢
DetachedCriteria criteria = DetachedCriteria.forClass(BizClaimVoucher.class);
criteria.add(Restrictions.eq("sysEmployeeByCreateSn.sn", sn));
if(status !=null && status.length() != 0){
criteria.add(Restrictions.eq("status",status));
}
if(startDate !=null){
criteria.add(Restrictions.gt("createTime",startDate));
}
if(endDate !=null){
criteria.add(Restrictions.lt("modifyTime",endDate));
}

criteria.setProjection(Property.forName("id"));
int rowCount = baseDao.getRowCount(criteria).intValue();
page.setTotalCount(rowCount);
int pageCount = (rowCount + page.getPageSize() -1) / page.getPageSize();
page.setTotalPageCount(pageCount);
if(page.getTotalPageCount() >pageCount ){
page.setTotalPageCount(pageCount);
}
criteria.setProjection(null);

List<BizClaimVoucher> result = baseDao.findByPage(criteria, page.getCurrPageNo(), page.getPageSize());
page.setItems(result);
return page;
}




}



...全文
303 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
nikyotensai 2016-10-26
  • 打赏
  • 举报
回复
public Long getRowCount(DetachedCriteria criteria) { return (Long)this.getHibernateTemplate().findByCriteria(criteria).get(0); } 这边有问题,为null就get(0)失败
  • 打赏
  • 举报
回复
//也数计算 @Override public Long getRowCount(DetachedCriteria criteria) { return (Long)this.getHibernateTemplate().findByCriteria(criteria).get(0); } 这里没查到结果,而你去get了

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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