Есть ли способ определить, какие свойства были изменены через AuditQuery?

1

У меня есть объект, называемый 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();

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

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

Теги:
spring-mvc
hibernate
hibernate-envers

1 ответ

0
Лучший ответ

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

  • 0
    Да, похоже, единственный способ сделать это - сделать это вручную. Спасибо за помощь

Ещё вопросы

Сообщество Overcoder
Наверх
Меню