gpt4 book ai didi

java - 如何使用 Spring Data JPA 将列的新旧值保存到 Audit 表中

转载 作者:行者123 更新时间:2023-12-01 07:50:00 26 4
gpt4 key购买 nike

我正在使用 Spring BootSpring Data JPAMS Sql server2014 数据库来保存和更新实体(javax.持久性)到表中。

根据要求,我们需要审核所有表的每一列。所以我创建了新表作为“审计”并包含相应的列。但我不知道如何保存新旧值和其他列。

Spring中有没有单独的API来支持这个功能?

create table Audit
(
Id INT NOT NULL PRIMARY KEY,
TableName VARCHAR (100)
ColumnName VARCHAR (100)
RowId INT,
OldValue VARCHAR (100),
NewValue VARCHAR (100),
Type VARCHAR (100),
ChangedDate DATETIME,
ChangedBy VARCHAR (100),
);

其中“Type”表示DML操作的类型,“Old value & New value”列保存父表中列的先前值和现有值。

我能否知道审计实体的最佳方法,即将旧值和新值以及其他相关字段保存并更新到审计表中。

最佳答案

查看 hibernate envers它易于配置(您所要做的就是将您的实体标记为@Auditable)并且它负责以下工作:

  1. 创建审核表
  2. 在插入/更新/删除实体时将数据插入审计表
  3. 它提供了自己的查询语言,您可以使用它来获取实体中所有已更改的内容

更新
您还可以查看javers 。我曾将 Javers 与 Hibernate 一起使用 EntityInterceptor以字段变化、旧值和新值的形式捕获变化。参见哈弗斯Diff了解更多详情。

关于java - 如何使用 Spring Data JPA 将列的新旧值保存到 Audit 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39745153/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com