我想通过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 ...相同的结果。
答案 0 :(得分:2)
您在数据库中拥有什么价值? 如果你的数据库中的日期也有时间价值而且你只想与当天比较,你应该基本上做以下几点:
WHERE RunDate >= '2015-07-25 00:00:00' AND RunDate <= '2015-07-25 23:59:59'
仅限于与Criteria API等效的
问候