刚入行,在做ssh+ext的单表操作,碰到问题了。现在要求是根据页面上输入的项目编号、项目名称、和开始结束时间四个字段来查询。项目编号和项目名称可以查询,但是时间不能查询。        item实体类里面startupTime为启动时间,页面上有beginTime和endTime两个datefield,然后我在实体类里面还添加了这俩个字段。现在就是按时间不能查找,请求高人解决
              DetachedCriteria criteria = DetachedCriteria.forClass(BdItemInfo.class);
if(!"".equals(item.getItemCode()) && item.getItemCode()!=null){
criteria.add(Restrictions.ilike("itemCode", item.getItemCode().toString(), MatchMode.ANYWHERE));
}
if(!"".equals(item.getItemName()) && item.getItemName()!=null){
criteria.add(Restrictions.ilike("itemName", item.getItemName().toString(), MatchMode.ANYWHERE));
}
if((!"".equals(item.getBeginTime())) && item.getBeginTime() !=null)
{
criteria.add(Restrictions.ge("startupTime", item.getBeginTime()));
}
if((!"".equals(item.getEndTime())) && item.getEndTime() !=null)
{
//endDate = DateUtil.addOneDay(endDate);//获取结束时间的全天时间;
criteria.add(Restrictions.le("startupTime", item.getEndTime()));
}
page=itemDao.getPageByCriteria(criteria, page);

解决方案 »

  1.   

    你的逻辑有问题吧,不等于“”并且不等于null的时候操作
    怎么会有这种情况啊
    你这个条件是恒不成立的啊
      

  2.   

    如果取不到类会是null
    如果取到了数据但是数据为空会出“”
    这两个条件永远都返回false的啊
      

  3.   

    这代码是俩段,第一段是
     !("".equals(item.getItemCode())
    第二段是
     item.getItemCode()!=null当不是""或者null时返回都都是true哦,好像没问题哦…昨天的问题解决了,是时间的问题,我页面上传过来的是中文时间