如何使用 JPA Criteria Query 根据自定义 JPA 存储库中的时间戳进行查询?
我有一个startTime
,endTime
我想用它来查询time
它们之间的字段,但我需要在自定义存储库中执行此操作,因为我需要使用许多其他字段来构建复杂的查询。
我可以成功构建一个复杂的查询并获得正确的结果,除非我尝试使用startTime
and进行查询endTime
。我一直在尝试做类似以下的事情,但没有运气
@PersistenceContext private EntityManager em;
...
final CriteriaBuilder cb = this.em.getCriteriaBuilder();
final CriteriaQuery<AutoenrollmentEvent> cr = cb.createQuery(Event.class);
final Root<AutoenrollmentEvent> root = cr.from(Event.class);
final List<Predicate> predicates = new ArrayList<>();
...
predicates.add(cb.between(root.get("time"), data.getStartTime(), data.getEndTime()));
...
cr.select(root).where(predicates.toArray(new Predicate[0]));
return this.em.createQuery(cr).getResultList();
wheredata.getStartTime()
和data.getEndTime()
are 的类型java.sql.Timestamp
。
这个想法是在和time
之间的字段中获取所有带有时间戳的条目。startTime
endTime
关于如何做到这一点的任何想法?
谢谢。