Sam*_*Sam 5 java hibernate auditing hibernate-envers revision-history
我有一组域对象及其相关的表,用于应用程序的配置.经过身份验证的用户可以通过表示层更改这些域对象数据.这些 域对象具有非常重要的数据,我需要找到谁和何时更改了他们的数据.我的应用程序的数据访问层是使用JPA,Hibernate和Spring实现的.我需要记录每个更改,包括:用户+操作日期+操作类型+以前的值.
例如,让我们考虑一个简单的域对象(为了这个问题的目的简化):
@Entity
class Connection
{
private Long id;
private String name;
private String protocol;
}
Run Code Online (Sandbox Code Playgroud)
假设有一个Connection具有以下值的实例:
Connection
id = 1;
name = Web;
protocol = HTTPS;
Run Code Online (Sandbox Code Playgroud)
在用户(例如John)登录UI并将此连接更改为以下值之后:
Connection
id = 1;
name = Web;
protocol = HTTP;
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,John将协议更改HTTPS为HTTP(安全协议不安全!),因此我需要将Connection实例的历史记录保存在另一个表中以便进行审计.
我为我研究了一个解决方案,并找到了以下结果:
MappedSuperClass注释,如:Create User,Create Date,Last Update User和Last Update Date.它意味着存储实体的完整历史和状态.有没有人对此问题有任何建议或解决方案?
(对不起,如果我的问题很长,可能对专家来说太基础了)
| 归档时间: |
|
| 查看次数: |
2246 次 |
| 最近记录: |