什么是审计?
审计意味着跟踪和记录与数据相关的事务,这只是意味着记录插入、更新和删除操作(用户和/或操作日期)。
如何在 Spring 中添加 @Entity 的创建/更新日期?
这可以使用不同的方法来实现:
- 数据库内置解决方案:Oracle Database 12c、Db2、MySQL Enterprise Audit...
- 创建数据库触发器,
- 使用第三方工具,
- 为每个实体创建更新和创建列,并将每次更改手动记录到数据库中(完全由您自己编写),
- 使用 Spring 审计 :bulb:
最后一个选择不需要接触我们的实体业务逻辑来添加跟踪逻辑,也不需要向实体添加额外的列或额外的表来记录更改。
如果您使用的是 Spring,则可以使用无头解决方案来跟踪您的实体。我们配置一次,随处使用:
<span style="color:#444444"><span style="background-color:#f6f6f6">Spring Data 提供了复杂的支持<span style="color:#333333"><strong>来透明</strong></span><span style="color:#333333"><strong>地</strong></span>跟踪谁创建<span style="color:#333333"><strong>或</strong></span>更改了实体<span style="color:#333333"><strong>以及</strong></span><span style="color:#333333"><strong>发生</strong></span><span style="color:#333333"><strong>的</strong></span>时间点。(春天)
</span></span>
执行
可能的方法:
1.使用标准JPA实现:
使用实体的表本身来记录更改,在这种情况下我们无法审核删除操作。
2.使用Hibernate提供的审计功能实现:
它登录到实体表以外的表,允许记录删除操作。