*数据库里面 submitTime 是nvarchar(50);sqlserver数据库
[code="java"]
public Pager findPagerByTime(String startTime,String endTime,int pageSize, int pageNo){
// startTime是2011-2-2,endTime是2011-3-1
Session session=getHibernateTemplate().getSessionFactory().openSession();
Criteria criteria=session.createCriteria(ApplyList.class);
criteria.add(Restrictions.between("submitTime", startTime, endTime));
int rowCount=((Integer)criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue();
criteria.setProjection(null);
int startIndex=pageSize*(pageNo-1);
criteria.addOrder(Order.desc("submitTime"));
criteria.setFirstResult(startIndex);
criteria.setMaxResults(pageSize);
List result=criteria.list(); // 查询不到
System.out.println("result.size():"+result.size());
session.close();
return new Pager(pageSize,pageNo,rowCount,result);
}
[/code]
请问这样的查询语句,是哪里出错导致拿不出这个时间范围内的数据呢?
这些代码看不出来,不过我可以提点建议。
看看你的属性怎么设置的,如果时间用String,就都用String,包括POJO里的属性。
如果是Date类型的,那么在这个方法中不要传String进去,用SimpleDateFormat类的parse(好像是这个名字,抱歉忘了,这个自己查文档没问题吧)方法把字符串转成Date传进去。