通过条件检索日期失败

时间:2015-07-25 18:02:18

标签: java mysql hibernate criteria

我想通过Criteria通过Hibernate检索日期列中具有当前日期的实例。

1)所以在MySQL DB中通过MySQL_Workbench我在当前日期'2015-07-25'插入了一个实例。

2)我的java代码如下所示:

Date date = new Date();

 factory = new AnnotationConfiguration().configure().buildSessionFactory();
     Session session = factory.openSession();
     session.beginTransaction();

    Criteria cr = session.createCriteria(Logger.class);
     //the following date-like cr. fails
     cr.add(Restrictions.eq("RunDate",date));
     //this cr. runs fine alone retreiving the requested instances
     cr.add(Restrictions.like("Name", "John"));
     //The following work fine
     cr.setProjection(Projections.sum("Contacts"));
     long resultCount = (long)cr.uniqueResult();
     System.out.println(resultCount);
     ...

当使用日期条件运行时,我有一个空指针异常。我也试过cr.like,cr.ge ...相同的结果。

1 个答案:

答案 0 :(得分:2)

您在数据库中拥有什么价值? 如果你的数据库中的日期也有时间价值而且你只想与当天比较,你应该基本上做以下几点:

WHERE RunDate >= '2015-07-25 00:00:00' AND RunDate <= '2015-07-25 23:59:59'

仅限于与Criteria API等效的

问候