【问题标题】:Retrieving date via Criteria fails通过条件检索日期失败
【发布时间】:2015-07-25 18:02:18
【问题描述】:

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

1) 因此,我通过 MySQL_Workbench 在 MySQL DB 中插入了一个写入当前日期 '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 ...相同的结果。

【问题讨论】:

    标签: java mysql hibernate criteria


    【解决方案1】:

    您的数据库中有什么价值? 如果您在数据库中的日期也有时间值,并且您只想与当天比较,您应该基本上执行以下操作:

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

    仅在 Criteria API 的等效项中类似

    问候

    【讨论】:

    • 你说得对,声明之间的标准似乎有效,谢谢。
    猜你喜欢
    • 2018-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-18
    • 1970-01-01
    • 2015-03-06
    • 2014-11-10
    • 1970-01-01
    相关资源
    最近更新 更多