有没有办法通过 AuditQuery 确定哪些属性已被修改?
Is there a way to identify which properties have been modified though the AuditQuery?
我有一个名为 Contact
的对象,我将每个 属性 标记为 @Audited
。保存更改按预期工作。我可以看到数据库中的所有数据和变化。我想要做的是访问更改。我想获取一个特定 Contact
的所有更改,并且我想查看每个日志更改了哪些属性。这是我到目前为止的位置。
AuditReader reader = AuditReaderFactory.get(entityManager);
AuditQuery query = reader.createQuery().forRevisionsOfEntity(Contact.class, false, true);
query.add(AuditEntity.id().eq(contactId));
List<Object[]> contacts = query.getResultList();
现在返回的对象列表是我想要的数据列表,但是我不知道如何识别每个结果中更改了哪些属性。是否有 different/better 方法可以让我查看修改了哪些属性?或者其他人对如何执行此操作有不同的想法?
提前致谢!
Envers 中没有内置差异功能,因此您可以手动比较两个后续修订版,或者您可以添加额外的列(标志)来保存列值是否更改的信息;参见手册:http://docs.jboss.org/hibernate/core/4.3/devguide/en-US/html/ch15.html#envers-tracking-properties-changes
我有一个名为 Contact
的对象,我将每个 属性 标记为 @Audited
。保存更改按预期工作。我可以看到数据库中的所有数据和变化。我想要做的是访问更改。我想获取一个特定 Contact
的所有更改,并且我想查看每个日志更改了哪些属性。这是我到目前为止的位置。
AuditReader reader = AuditReaderFactory.get(entityManager);
AuditQuery query = reader.createQuery().forRevisionsOfEntity(Contact.class, false, true);
query.add(AuditEntity.id().eq(contactId));
List<Object[]> contacts = query.getResultList();
现在返回的对象列表是我想要的数据列表,但是我不知道如何识别每个结果中更改了哪些属性。是否有 different/better 方法可以让我查看修改了哪些属性?或者其他人对如何执行此操作有不同的想法?
提前致谢!
Envers 中没有内置差异功能,因此您可以手动比较两个后续修订版,或者您可以添加额外的列(标志)来保存列值是否更改的信息;参见手册:http://docs.jboss.org/hibernate/core/4.3/devguide/en-US/html/ch15.html#envers-tracking-properties-changes