Как создать настраиваемое поле при использовании спящих Hibernate

Я начинаю новый проект с использованием Spring 3.1, Hibernate 4, и есть требование, чтобы отслеживать любую активность в приложении. пример отслеживания активности who changed what?from what to what? а также at which time? Я прочитал вводный урок по спячке anvers. и мне кажется, что это больше история данных, чем отслеживание активности, если я не получил ее вообще.

Есть ли способ добавить настраиваемое поле в эту таблицу *_aud для вставки более определенной пользователем таблицы. лайк date_created, last_modified, created_by, updated_by со своим databefore а также dataafter вроде полей. так что в основном я хотел бы добавить createdby, updatedby чтобы созданная таблица

Есть ли способ сделать это. если да, пожалуйста, укажите мне правильный ресурс.

Спасибо за прочтение.

1 ответ

В Envers каждая "производственная" таблица имеет соответствующую таблицу *_AUD, в которой хранится историческое состояние объектов. Существует также глобальный REVINFO (org.hibernate.envers.DefaultRevisionEntity) таблица, которая содержит номер редакции, метку времени и пользовательские столбцы, определенные пользователем. Пример, показывающий, как расширить DefaultRevisionEntity, можно найти в документации. В настоящее время нет возможности настроить таблицы *_AUD, однако Envers должен ответить на все вопросы, которые вы задали.

  1. кто что изменил? - Храните учетные данные пользователя в таблице REVINFO.
  2. с чего на что? - Это довольно общий вопрос:). Попробуйте исследовать org.hibernate.envers.AuditReader а также org.hibernate.envers.query.AuditQueryCreator,
  3. в какое время? - Метка времени хранится в таблице REVINFO. Эта временная метка отражает время, когда пользователь внес свои изменения.
Другие вопросы по тегам