spring - 如何操纵我的审计项目以在 Spring Boot 中持续存在
问题描述
我正在使用 Spring Boot 和 JpaRepository 来保存我的数据。但我需要一种方法来审核我的 jpa 请求。
问题是。我想获取在请求发生的那一刻生成的事件,并让对象持久化和旧对象并操纵它以持久化自定义审计表。我不想使用默认结构进行审核。例如,@JaversSpringDataAuditable 将审计保存在特定的表结构中。我不想要这个我只想在拦截器或类似的东西中获取结构并操纵它以保持我的特定结构
解决方案
目前还不清楚您到底想要达到什么目标。因此,我将提到一些在 Spring Boot 中进行审计的简单方法,希望对您有所帮助。
对于审计 JPA 交互,您可以启用 JPA 审计宽度类@EnableJpaAuditing
中的注释@Config
。您可以使用注释使实体可审计@EntityListeners(AuditingEntityListener.class)
。当实体对象被持久化或更新时,审计信息将被捕获。
例如,这种带注释的实体可以存储@CreatedDate
或@LastModifiedDate
。有关更多信息,您可以查看Spring 的文档。
@Entity
@EntityListeners(AuditingEntityListener.class)
public class ExampleEntity {
//...
@Column(name = "created_date", nullable = false, updatable = false)
@CreatedDate
private long createdDate;
@Column(name = "modified_date")
@LastModifiedDate
private long modifiedDate;
//...
}
如果您想在实体被持久化或更新之前执行一些操作,您可以使用注解@PrePersist
和@PreUpdate
(@PreRemove
也可用但似乎不需要)。
@Entity
public class Example Entity {
//...
@PrePersist
public void onPrePersist() {
// Do something before entity is persisted
}
@PreUpdate
public void onPreUpdate() {
// Do something before entity is updated
}
}
推荐阅读
- django - 如何使用 Django AutoSlugField 输出作为 ImageField 文件名
- node.js - 如何使用快速 CSV 正确处理错误?
- html - 当我尝试定位其他元素时,我的元素改变了它们的位置
- javascript - Angular Material 获取 matColumnDef 属性
- javascript - 如何验证已用逗号格式化的 redux 表单字段
- mongodb - 如何删除mongodb中的数据库?
- c - 为什么 C 使用两个单引号来分隔字符文字而不是一个?
- python - 通过在 Python 中使用 fsolve 和不确定性包求解具有不确定性的积分方程
- list - 多个 TypeErrors 试图在列表理解中乘以列表的元素
- r - 将显着性水平(百分比差异)添加到多级闪避ggplot2