通过参数日期从数据库加载对象

Load objects from db by parameter Date

我在数据库中有一些对象。每个对象都有日期格式的参数日期,如 "Mon Oct 05 08:55:36 CEST 2015"。我想加载从 24 小时前到现在的所有对象。我正在使用休眠实体管理器。你能帮帮我吗

这是我的实体参数:

private Long id;
private String email;
private String answer1;
private String answer2;
private Date date;

这里是 table 架构:

ID ;  email ;           answer1 ;   answer2 ;   date
1  ;  any@thing.com ;     1234  ;      4321 ;   2015-10-04 18:01:19

然后我假设 date table 列的类型确实是 SQL DATE。在这种情况下,您可以简单地 运行 一个 HQL/JPQL 查询

SELECT e FROM YourEntity e WHERE e.date BETWEEN :from AND :to

从中创建一个 PreparedStatement 并为 fromto 参数提供所需的值。使用 JPA 的示例:

EntityManager em = ...;

Date to = new Date();
Calendar fromCalendar = Calendar.getInstance();
fromCalendar.setTime(to);
fromCalendar.add(Calendar.HOUR_OF_DAY, -24);
Date from = fromCalendar.getTime();

em
        .createQuery("SELECT e FROM YourEntity e WHERE e.date BETWEEN :from AND :to", YourEntity.class)
        .setParameter("from", from, TemporalType.TIMESTAMP)
        .setParameter("to", to, TemporalType.TIMESTAMP)
        .getResultList();

使用 JodaTime or Java8 Time package 可能会使整个日期操作更容易(不知道您是否使用它们,所以我举了一个使用 "basic" Java 类).