Page 1 of 1

五、带有审计的数据库行为

Posted: Sat Apr 05, 2025 6:25 am
by jakariabd@
访问实体历史记录:
可以采用与使用 Hibernate Criteria API 检索数据类似的方式检索过去的数据。使用活动的 ` EntityManager`或 ` Session`,可以使用 ` AuditReader`接口通过 ` AuditReaderFactory`访问实体的审计历史记录。

访问实体历史记录

IV. 自定义修订
默认情况下,Envers 会跟踪“什么”更改,但不包含有关“谁”或“何时”更改的详细信息。您可以自定义修订表以包含用户名和修订日期等其他字段。

1. 实现自定义修订实体:
实现自定义修订实体

2. 创建修订监听器:
创建修订监听器

1. 通过审计自动更新实体:
使用注解配置审计后,客户端发送的请求仅包含必要字段的CRUD,其他配置审计的字段将自动更新数据库中的数据。

通过审计自动更新实体

自动更新实体并进行审计 2

2.历史修订表:
系统自动创建两个新表,一个名为` revinfo `,另一个名为` [entity_name]_aud `。

– 在revinfo表中,它是每次修订加密货币数据库的跟踪时间,但它有一个限制,即它以 ` long ` 类型显示时间戳,因此开发人员很难跟踪实体何时发生变化。

– 在[entity_name]_aud表中,每笔交易都会创建新记录。` id ` 列表示实体 id。` rev ` 在修订表中表示为时间戳。`revtype` 表示每次更改的操作:0 – 创建,1 – 更新,2 – 删除。

* 请注意,每次操作(CRUD)之后,即使您在每个请求中更新 1 个或多个字段,它也只会创建 1 条记录。