通过参数日期从数据库加载对象
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 并为 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 or Java8 Time package 可能会使整个日期操作更容易(不知道您是否使用它们,所以我举了一个使用 "basic" Java 类).
我在数据库中有一些对象。每个对象都有日期格式的参数日期,如 "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 并为 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 or Java8 Time package 可能会使整个日期操作更容易(不知道您是否使用它们,所以我举了一个使用 "basic" Java 类).