通过条件检索日期失败
Retrieving date via Criteria fails
我想通过 Hibernate 通过 Criteria 检索其日期列中具有当前日期的实例。
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);
...
当 运行 日期标准时我有一个空指针 exception.I 也尝试了 cr.like,cr.ge ...相同的结果。
您的数据库中有什么值?
如果你的数据库中的日期也有时间值,而你只想与当天进行比较,你应该基本上执行以下操作:
WHERE RunDate >= '2015-07-25 00:00:00' AND RunDate <= '2015-07-25 23:59:59'
仅在等同于标准的情况下才如此API
问候
我想通过 Hibernate 通过 Criteria 检索其日期列中具有当前日期的实例。
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);
...
当 运行 日期标准时我有一个空指针 exception.I 也尝试了 cr.like,cr.ge ...相同的结果。
您的数据库中有什么值? 如果你的数据库中的日期也有时间值,而你只想与当天进行比较,你应该基本上执行以下操作:
WHERE RunDate >= '2015-07-25 00:00:00' AND RunDate <= '2015-07-25 23:59:59'
仅在等同于标准的情况下才如此API
问候