Решение для аудита envers для массового обновления

В приложении, над которым я работаю, я использую Spring, Hibernate и envers для аудита. envers работает с такими вызовами, как, hibernateTemplate.insert, hibernateTemplate.save, hibernateTemplate.saveOrUpdate. Но, похоже, это не работает, когда я вызываю hibernateTemplate.bulkUpdate.

Я искал решения в Google и обнаружил, что envers не поддерживает bulkUpdate.

По ссылке ниже был предложен способ решения проблемы, но я не могу его получить.

Массовая вставка / обновления Envers

Было бы полезно, если бы кто-нибудь мог предоставить обходной путь / образец для этого.

Спасибо


person shashikanthb    schedule 11.09.2012    source источник


Ответы (1)


Документация верна. HQL и собственные операции SQL не проверяются.

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

Другой вариант - вручную выполнить массовое обновление и для таблиц аудита, но это не будет изящным. Мне удалось обойти проблему в моем случае, изменив дизайн в соответствии с вышеизложенным.

person ifx    schedule 17.09.2012