Есть ли способ получить только измененные столбцы из объекта, используя Hibernate? - PullRequest
3 голосов
/ 26 марта 2010

В постоянном объекте, если я изменяю только одно поле, возможно ли найти измененное поле только через Hibernate? Я знаю, что могу получить весь старый ряд и новый ряд и сравнить.

Ответы [ 2 ]

7 голосов
/ 26 марта 2010

На основании одного вашего комментария я понимаю, что вы ищете решение для аудита, поэтому я предлагаю проверить Envers , что именно об этом.

Проект Envers направлен на обеспечение легкого аудита / управления версиями постоянных классов. Все, что вам нужно сделать, это аннотировать ваш постоянный класс или некоторые его свойства, которые вы хотите проверять, с помощью @Audited. Для каждого проверяемого объекта будет создана таблица, в которой будет храниться история изменений, внесенных в объект. Затем вы можете без особых усилий извлекать и запрашивать исторические данные.

5 голосов
/ 26 марта 2010

Один из вариантов - подключиться к системе событий Hibernate (см. docs ). Например, если вы зарегистрировались для получения FlushEntityEvent, то вам сообщат о том, какие столбцы изменялись с помощью метода getDirtyProperties события.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...