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