Я хочу отслеживать изменения, внесенные в каждый столбец в конкретной таблице. Я думал о сохранении изменений в другой таблице со следующими столбцами: id, field, and data
где field
(строковое значение) - это столбец в целевой таблице, который был изменен, и data
- это новое значение этого поля.Отслеживание изменений полей db при использовании ORM
При возврате набора данных я думал об извлечении исходных данных из целевой таблицы и измененных значений из изменений отслеживания таблицы, а затем используя возможности отражения в Java, чтобы установить значения измененных полей в самое новое измененное значение.
На основании вышеизложенного у меня есть следующие вопросы:
- ли мой подход имеет смысл? Есть ли лучший способ достичь желаемых результатов?
- Я использую JPA 2 для обработки ORM, есть ли какие-либо функции ORM, которые могут быть полезны для достижения конечной цели?
Благодаря
Если вы используете Hibernate, вам обязательно нужно проверить настройки. Его можно легко интегрировать с помощью механизма событий hibernate и не требует больших усилий для настройки. Envers достаточно мощный и может обрабатывать аудит полных графиков объектов. Кроме того, он упрощает запрос истории. – Thomas
& @Thomas: Поскольку я использую спящий режим в качестве основной реализации, я смотрел в Envers, и он делает именно то, что я ищу. Спасибо за хедз-ап. – NKing253