weixin_42418805 2011-02-28 15:53
浏览 271
已采纳

hibernate里面使用 criteria设定时间范围,拿不到数据

*数据库里面 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]

请问这样的查询语句,是哪里出错导致拿不出这个时间范围内的数据呢?

  • 写回答

1条回答 默认 最新

  • fellatioyzx 2011-03-08 11:26
    关注

    这些代码看不出来,不过我可以提点建议。
    看看你的属性怎么设置的,如果时间用String,就都用String,包括POJO里的属性。
    如果是Date类型的,那么在这个方法中不要传String进去,用SimpleDateFormat类的parse(好像是这个名字,抱歉忘了,这个自己查文档没问题吧)方法把字符串转成Date传进去。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?