如何在envers中获取自定义实体监听器中的当前修改记录

How to get current modified record in custom entity listener in envers

我创建了一个 Listener CustomRevisionEntityListener,它实现了 RevisionListener 和 CustomRevisionEntity(添加列 allocateTo),它扩展了 DefaultRevisionEntity。

我用@Audited 注释了一名 class 员工。员工 class 有一个字段 isAvailable。

我的要求是,如果用户将 Employee -> isAvailable 值更改为 true,我需要更新 CustomRevisionEntity 记录中分配的列。

如何在 CustomRevisionEntityListener 中获取修改后的员工模型/employee_aud 记录?

我认为你应该使用 "entity tracking revision listener"。这允许您在实体更改时收到通知。看这里:http://docs.jboss.org/hibernate/core/4.0/devguide/en-US/html/ch15.html#envers-tracking-modified-entities-revchanges

扩展休眠 'post-update' 事件,以便我们可以获取实体 'Employee' 的脏属性并将属性连同旧值和新值添加到 CustomRevisionEntity。