java - 审计模型中的属性变化

标签 java spring hibernate spring-mvc jpa

我需要能够审核 Spring MVC - JPA 应用程序中多个模型的更改。我有 USER 类:

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
@Column(unique = true)
private String email;
@Column(nullable = false)
private String password;
private Date birthday;
private String mobileNumber;
private Date lastLogedInDate;
private int failedLoginsCount;
private Date lastFailedLoginDate;
private Date lastPasswordResetDate;
private boolean isAdministrator;
private String screenName;
@Column(nullable = true, columnDefinition = "VARBINARY(MAX)")
private byte[] image;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinColumn(name = "user_id")
private Set<Role> roles = new HashSet<>();
@OneToOne
private Branch branch;

我希望能够审核字段 mobileNumber、screenName 和 Branch 的更改 我希望能够有足够的数据来扭转用户之前的状态。我所说的反向是指我有该用户的 Activity 列表,并且会有一个按钮 - 按下它时会反转某些字段(branch、screenName 或 mobileName)的先前状态。我还想在我的应用程序中的 10 个不同模型上实现此类功能。

我已经阅读过有关 hibernate Canvas 的内容(但从未尝试过) - 我可以仅审核某些字段的此类更改吗?这会对我的应用程序的速度产生多大影响?

还有其他现成的解决方案可以做到这一点吗?或者我必须手动检查更改?

最佳答案

这就是 AOP 的确切用例,这是使用 Spring 等 DI 容器的主要好处之一。阅读 this article了解更多信息。

关于java - 审计模型中的属性变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35890296/

相关文章:

java - 在调试测试时使用 DatabaseManager 连接到内存中的 Hsql(超音速)数据库

java - Spring cloud stream kafka binder 是否有一个很好的例子来使用通用的 json 消息

java - HQL - 从带有点分隔符的选择中获取结果

spring - 多次引用数据库序列 [hibernate_sequence]

java - 我对加盐和 SHA-512 哈希密码的实现是否正确/安全?

java - 使用正则表达式验证 mysql 语句

java - 预期和实际未显示在控制台日志中 - Groovy Spock

spring - 存储 Spring boot 应用程序的 application.properties 文件的最佳位置是什么?

java - 在 Spring Integration 中为 ContentEnricher 定义异常回退行为

java - Criteriabuilder 日期比较