6.4. Configuration
6.4.1. 配置端点参数 复制链接链接已复制到粘贴板!
JBoss EAP 通过 Hibernate Envers 使用实体审计来跟踪永久类的历史更改。
配置可用的端点参数
-
打开
应用的 persistent.xml文件。 根据需要添加、删除或配置 Envers 属性。有关可用属性列表,请参阅 Envers Configuration Properties。
示例:结束参数
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.4.2. 在运行时启用或禁用审计 复制链接链接已复制到粘贴板!
在运行时启用或禁用实体版本审核
-
子类
AuditEventListener类。 覆盖在 Hibernate 事件中调用的以下方法:
-
onPostInsert -
onPostUpdate -
onPostDelete -
onPreUpdateCollection -
onPreRemoveCollection -
onPostRecreateCollection
-
- 将子类指定为事件的监听程序。
- 确定是否应审计更改。
- 如果更改应该被审计,则将调用传递到超级类。
6.4.3. 配置条件审计 复制链接链接已复制到粘贴板!
Hibernate Envers 使用一系列事件监听器以对各种 Hibernate 事件的响应保留审计数据。如果 Envers JAR 在类路径中,则这些监听程序会自动注册。
实施条件审计
-
在
persistenceHibernate 属性设置为 false。.xml 文件中将 hibernate.listeners.envers.autoRegister - 子类要覆盖的每个事件监听程序。将条件审计逻辑放在子类中,并在应当执行审计时调用超级方法。
-
创建
org.hibernate.integrator.spi.Integrator的自定义实施,类似于org.hibernate.envers.event.EnversIntegrator。使用在第 2 步中创建的事件监听器子类,而不是默认的类。 -
将
META-INF/services/org.hibernate.integrator.spi.Integrator文件添加到 JAR。此文件应当包含实施接口的类的完全限定名称。
6.4.4. Envers 配置属性 复制链接链接已复制到粘贴板!
| 属性名称 | 默认值 | 描述 |
|---|---|---|
|
| 在被审计实体名称前加上字符串,以创建保存审计信息的实体的名称。 | |
|
| _AUD |
附加到已审计实体名称的字符串,以创建保存审计信息的实体的名称。例如,如果对表名称为 |
|
| REV | 包含修订号的审计实体中的字段名称。 |
|
| REVTYPE |
存放修订类型的审计实体中的字段名称。当前可能的修订类型有: |
|
| true |
此属性决定是否应生成修订项,如果关系字段未拥有的更改。这可以是一对多关系中的集合,也可以是使用一对一关系中的 mapping |
|
| true |
为 true 时,用于开放式锁定的属性(使用 |
|
| false | 此属性定义在删除实体时是否应将实体数据存储在修订中,所有其他属性均标记为 null(而非 ID)。这通常不需要,因为数据存在于最后一处的修订版本中。但有时候,在最后一个修订版本中访问它更为简单和高效。但是,这意味着在删除前包含的数据被存储两次。 |
|
| Null(与普通表相同) |
用于审计表的默认架构名称。可以使用 |
|
| Null(与普通表相同) |
应用于审计表的默认目录名称。可以使用 |
|
|
|
此属性定义在持久保留审计数据时应使用的审计策略。默认情况下,仅存储了实体修改的修订版本。另外, |
|
| REVEND | 在审计实体中保存最终修订版本的列名称。只有使用了有效期审计策略时,此属性才有效。 |
|
| false |
此属性定义除结束修订本身外,是否应将最终修订的时间戳(数据在最后有效的位置)存储下来。这对于使用表分区从关系数据库中清除旧的审计记录非常有用。分区需要表中存在的列。只有在使用了Validity |
|
| REVEND_TSTMP |
结束修订版本时间戳的列名称,即数据仍有效。只有在使用了Validity |