查找时间戳小于x的实体的最新修订



我画了一幅画来说明我想要的结果:结果的绘制

我有一个传递到后端的最大时间戳,我想返回时间戳小于传递时间戳的实体的最新版本。
在我的示例中,传递的时间戳是180。我把数字保持在较低的水平,这样更容易形象化。

这是一个水平和垂直查询的组合,我不确定如何实现。任何帮助都将不胜感激!

它可以通过以下方式实现:

public List<Book> getBooksByMaxTimestamp(Date date) {
String formattedDate = simpleDateFormat.format(date);
System.out.println("Less than " + formattedDate);
AuditQuery maxRevisionNumberQuery = auditReader.createQuery().forRevisionsOfEntity(Book.class, true, false);

maxRevisionNumberQuery.add(AuditEntity.revisionProperty("timestamp").le(date.getTime()));
maxRevisionNumberQuery.addProjection(AuditEntity.revisionNumber().max());
int maxRevisionNumber = (int) maxRevisionNumberQuery.getSingleResult();
AuditQuery auditQuery = auditReader.createQuery().forEntitiesAtRevision(Book.class, maxRevisionNumber);
return auditQuery.getResultList();
}

首先,我们得到该范围内的最大修订号,然后使用该数字来获得我们想要的实体。

相关内容

最新更新