查询时出错,如下:
主方法:
public boolean existsPortData(String strDate,Long portId)
{
//TODO hql需要ipml
Date date = com.jctlive.homelink.utils.DateUtil.parseFormatDate(strDate);
DetachedCriteria detachedCriteria = DetachedCriteria.forClass(PoPortData.class);
detachedCriteria.add(Restrictions.eq(PoPortData.PROP_POPD_DATE, date));
detachedCriteria.add(Restrictions.eq(PoPortData.PROP_POPD_STATUS, 1));
detachedCriteria.add(Restrictions.eq(PoPortData.PROP_POPD_PO_ID, portId));
List al = poPortDataDAO.findByCriteria(detachedCriteria);
if(al.size()>0)
return true;
else
return false;
}
Junti测试代码:
public void testExistsPortData()
{
String strDate = "2010-10-28";
        Long portId = 1L;
//断言(期待的值,实际的值)
assertEquals(true, importService.existsPortData(strDate, portId));
}数据库的确存在满足条件的记录,但断言老是返回false.怎么回事呢???

解决方案 »

  1.   

    弱弱的问下 Date类型能这么简单的eq吗?
    我觉得还是得 strDate > 2010-10-28 00:00:01 && strDate < 2010-10-28 23:59:59
      

  2.   

    你将转换后的date 打印出来看看撒,是否和数据库一致的
      

  3.   

    使用工具类转换后时间格式为Thu Oct 28 00:00:00 CST 2010
    但是用java.sql.date.valueOf(strDate) 后可以是2010-10-28(但是公司要求的date是必须导入util类型。)
    但是也不行啊???囧了