Hibernate Envers:如何捕获谁在审计中删除了实体 table
Hibernate Envers: How to capture who deleted an entity in audit table
我正在使用 hibernate-envers
和 spring
。一切正常,除了当我删除一个实体时,它不会更改审计 table 中 updated_by
和 updated_date
的值,而是完全按照以前的方式保存实体(只是复制)在 spring.jpa.properties.org.hibernate.envers.store_data_at_delete=true
.
之后
我已经尝试注册监听器EventType.PRE_DELETE
,但没有用。
这是我的更新实体:
@LastModifiedBy
@Column(nullable = false)
private Long updatedBy;
@LastModifiedDate
@Column(nullable = false)
private Date updatedDate;
如何通过修改 updated_by
和 updated_date
列在审核 table 中捕获删除的人员和删除时间?
看起来您正在结合以下功能:审核支持和 Envers。
Envers 记录对您的实体的每一次更改,包括按照您的配置进行的删除。
审计支持跟踪更新并插入时间戳和用户。
它不适用于删除,因为没有地方可以存储该信息。
如果你想保留这个组合并让它继续工作,你需要修改实体(例如,将一个额外的标志 deleting
设置为 true),刷新它,甚至可能提交它(我'我不确定是否有必要)然后删除它。
可能更好的方法是使用自定义修订对象并将所需数据存储在那里,如本问答中所述:Ways to pass additional data to Custom RevisionEntity in Hibernate Envers?
我正在使用 hibernate-envers
和 spring
。一切正常,除了当我删除一个实体时,它不会更改审计 table 中 updated_by
和 updated_date
的值,而是完全按照以前的方式保存实体(只是复制)在 spring.jpa.properties.org.hibernate.envers.store_data_at_delete=true
.
我已经尝试注册监听器EventType.PRE_DELETE
,但没有用。
这是我的更新实体:
@LastModifiedBy
@Column(nullable = false)
private Long updatedBy;
@LastModifiedDate
@Column(nullable = false)
private Date updatedDate;
如何通过修改 updated_by
和 updated_date
列在审核 table 中捕获删除的人员和删除时间?
看起来您正在结合以下功能:审核支持和 Envers。
Envers 记录对您的实体的每一次更改,包括按照您的配置进行的删除。
审计支持跟踪更新并插入时间戳和用户。 它不适用于删除,因为没有地方可以存储该信息。
如果你想保留这个组合并让它继续工作,你需要修改实体(例如,将一个额外的标志 deleting
设置为 true),刷新它,甚至可能提交它(我'我不确定是否有必要)然后删除它。
可能更好的方法是使用自定义修订对象并将所需数据存储在那里,如本问答中所述:Ways to pass additional data to Custom RevisionEntity in Hibernate Envers?