Есть ли способ определить, какие свойства были изменены через 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();

Прямо сейчас список возвращаемых объектов - это список данных, которые мне нужны, однако я не знаю, как определить, какие свойства были изменены в каждом результате. Есть ли другой / лучший способ сделать это, который позволил бы мне увидеть, какие свойства были изменены? или у кого-то есть другое представление о том, как это сделать?

Заранее спасибо!

1 ответ

Решение

В Envers нет встроенной функции сравнения, поэтому вы можете вручную сравнить две последующие ревизии или добавить дополнительные столбцы (флаги), которые будут содержать информацию, изменилось значение столбца или нет; см. руководство: http://docs.jboss.org/hibernate/core/4.3/devguide/en-US/html/ch15.html

Другие вопросы по тегам