Envers - выберите объекты, которые были отредактированы

Я пытаюсь реализовать функцию синхронизации приложения Android с сервером.

Во время синхронизации приложение в Android входит в систему и сообщает, когда это была ваша последняя синхронизация (пока это только теория).

Вопрос в том, что серверу необходимо выбрать все сущности, которые изменились с указанной даты, с фильтрацией по заказчику, и ответить на них (в json) приложению;

Альтернативой может быть создание столбца lastUpdate в каждой сущности. Однако веб-система уже использует Hibernate Envers. Сущности помечаются знаком @audited.

Как я могу выбрать все объекты, которые изменились с даты, с помощью таблицы revinfo? Помня, что мне не нужна история объекта. Просто нужно знать, что изменилось. В приложение для Android будет отправлена ​​только последняя версия. Как сделать так, чтобы объект, который был изменен несколько раз, появлялся только один раз во время обновления?

Спасибо.


person Falci    schedule 14.08.2013    source источник


Ответы (1)


Возможно, лучше всего хранить такую ​​логику приложения отдельно от таблицы revinfo по принципу разделения проблем.

Не совсем уверен в специфике вашего случая, но объединенная таблица с идентификаторами ревизий и логическими значениями (или датами) - это недорогой способ отслеживания этой активности, при этом ваши данные аудита Envers остаются в чистом состоянии. В конце концов, ваша бизнес-логика может измениться, а варианты использования могут увеличиваться, но аудит изменений ваших сущностей, скорее всего, останется прежним.

person carbontax    schedule 15.08.2013