Envers可选谓词

时间:2016-10-20 08:04:30

标签: java hibernate hibernate-envers

我有一个envers查询来查找给定实体的历史记录,我想要做的是如果在请求中指定谓词,则使用谓词。

例如,我希望能够根据发送的请求按日期/用户/修订类型等(或字段组合)进行过滤。

我知道如何添加谓词,我只是想知道如果没有指定参数(例如fromDate),我可以使用默认值,因此忽略以下行。

.add(AuditEntity.revisionProperty("date").ge(fromDate))

1 个答案:

答案 0 :(得分:2)

从进一步阅读中我发现解决方案与此答案相似; https://stackoverflow.com/a/2439958/7030856

AuditReader reader = AuditReaderFactory.get(entityManager);
AuditQuery query = reader.createQuery().forRevisionsOfEntity(cls, true, true);
if (fromDate!= null) {
    query.add(AuditEntity.revisionProperty("date").ge(fromDate))
}
// Etc
List<Object[]> changes = query.getResultList();