查询jboss Envers日志中的一个属性已更改(或条件)

时间:2015-05-05 20:18:12

标签: hibernate jboss hibernate-envers

我试图使用Envers来查询"重要的"修订版,那些具有多个属性之一的版本已更改。对每个属性使用AuditQuery' add(AuditEntity.property("someproperty")创建一个" AND"必须更改所有命名属性以便提取修订的关系。

有没有办法将其更改为" or"这些属性修改标志的关系?

AuditQuery aq = ...(创建查询并添加类型和修订限制)

aq.add(AuditEntity.property("deleted").hasChanged())
            .add(AuditEntity.property("title").hasChanged())
            .add(AuditEntity.property("scopeOfWork").hasChanged())
            .add(AuditEntity.property("dueDate").hasChanged())
            .add(AuditEntity.property("estimatedHours").hasChanged())
            .add(AuditEntity.property("estimatedCost").hasChanged());

1 个答案:

答案 0 :(得分:0)

作为一个问题,一旦我提出这个问题,无论我做了多长时间,我都会想出答案。

对于任何想要解决这个问题的人:

 aq.add(AuditEntity.disjunction()
                .add(AuditEntity.property("title").hasChanged())
                .add(AuditEntity.property("scopeOfWork").hasChanged())
                .add(AuditEntity.property("dueDate").hasChanged())
                .add(AuditEntity.property("estimatedHours").hasChanged())
                .add(AuditEntity.property("estimatedCost").hasChanged()));

主要的Envers文档中没有清楚如何使用析取或者它应用于AuditEntity.property标准。它确实按预期工作。