JPA EventListener метод не вызывается при изменении коллекции «многие ко многим»?

Я использую JPA с Hibernate в качестве реализации в моем веб-приложении Spring.

я используюEntityListeners для аудита (Spring-data) и других целей уведомления. В целом работает нормально. Тем не мение,когда вносятся изменения в коллекцию / отношение «многие ко многим», без каких-либо других изменений в любом поле самих объектов,@PostUpdate событиеEventListenerс не уволены.

Чтобы привести конкретный пример: у меня естьUser иRole сущности с отношением многие-ко-многим между ними, используя базовую таблицу. Если я захожу в свой графический интерфейс управления пользователями и добавляю (или удаляю) роли для пользователя, не меняя ничего другого, событие «postUpdate» не запускается, данные аудита не изменяются.

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

Это нормальное поведение JPA, или это специфично для Hibernate? Есть ли обходной путь? Что бы вы сделали, чтобы вызвать это событие? Мысли?

Примечание: я нашел очень мало упоминаний об этом ограничении и еще меньше решений:Это ТАК вопрос (без полезного ответа) иэтот пост на форуме Hibernate тоже без ответа.

Ответы на вопрос(1)

Ваш ответ на вопрос