我在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;
答案 0 :(得分:0)
我假设,date
表列的类型确实是SQL DATE
。在这种情况下,您只需运行HQL / JPQL查询
SELECT e FROM YourEntity e WHERE e.date BETWEEN :from AND :to
从中制作PreparedStatement并为from
和to
参数提供所需的值。使用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>