Как получить ревизии аудита объединенной таблицы «Многие ко многим» с помощью запроса аудита Envers

#hibernate #hibernate-envers

#переход в спящий режим #переход в спящий режим-envers

Вопрос:

У меня есть два домена (пользователь, роль). Оба находятся в отношениях «многие ко многим». переход в спящий режим автоматически генерирует 3 таблицы (User, Role, UserRole).

Я интегрировал hibernate envers для целей аудита. Я могу получить ревизии из таблиц User amp; Role. Как я могу получить ревизии аудита из таблицы аудита роли пользователя.

Здесь мы не создавали домен роли пользователя. На основе отношения «многие ко многим» автоматически создается таблица пользовательских ролей. Таким образом, нет домена (роли пользователя) для получения ревизий аудита из запроса аудита таблицы аудита пользовательских ролей.

Ответ №1:

Поскольку UserRole это объединяемая таблица, вы хотели бы получить доступ к изменениям в этой ассоциации со стороны владельца этого отношения «многие ко многим». Я собираюсь предположить, для примера, что User является владельцем ассоциации; таким образом, вы могли бы получить доступ к тем, которые похожи на следующие:

 User user = auditReader.find( User.class, userId, revisionNumber );
List<UserRole> userRoles = user.getUserRoles();
  

Вышеизложенное предоставит вам все UserRole объекты в таблице соединений в revisionNumber for User с указанным значением идентификатора userId .