按参数Date从db加载对象

时间:2015-10-05 07:02:14

标签: database hibernate date entity entitymanager

我在db中有一些对象。每个对象都有日期格式的参数日期,如“Mon Oct 05 08:55:36 CEST 2015”。我希望从24h之前加载所有对象到现在。我正在使用hibernate实体管理器。你能帮帮我吗

这是我的实体参数:

<div class="green">GREEN</div>
<div class="blue">BLUE</div>

这是表架构:

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

1 个答案:

答案 0 :(得分:0)

我假设,date表列的类型确实是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或Java8 Time package可以使整个日期操作更容易(不知道你是否使用它们,所以我给出了一个使用“基本”Java类的例子)。 p>