刚入行,在做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);
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);
怎么会有这种情况啊
你这个条件是恒不成立的啊
如果取到了数据但是数据为空会出“”
这两个条件永远都返回false的啊
!("".equals(item.getItemCode())
第二段是
item.getItemCode()!=null当不是""或者null时返回都都是true哦,好像没问题哦…昨天的问题解决了,是时间的问题,我页面上传过来的是中文时间