我有一个envers查询来查找给定实体的历史记录,我想要做的是如果在请求中指定谓词,则使用谓词。
例如,我希望能够根据发送的请求按日期/用户/修订类型等(或字段组合)进行过滤。
我知道如何添加谓词,我只是想知道如果没有指定参数(例如fromDate
),我可以使用默认值,因此忽略以下行。
.add(AuditEntity.revisionProperty("date").ge(fromDate))
答案 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();