Java 如何使用Spring Boot/Spring数据实现历史数据更改

Java 如何使用Spring Boot/Spring数据实现历史数据更改,java,spring-boot,spring-data-jpa,Java,Spring Boot,Spring Data Jpa,问题是如何实现对数据更改的跟踪,例如,主详细表,即Spring Boot/Spring数据中一对多关系中的两个实体 存储数据后,能够获取主实体及其特定版本的详细信息,并具有将其还原为特定版本的功能。如果使用JPA,对象审核框架(如JPA)可能会有所帮助,对象审核框架(如或可能有帮助)您可以使用Hibernate Envers审核持久性实体更改并对其进行版本控制 Envers项目的目标是使持久性数据的审核变得容易 上课。您所要做的就是注释您的持久类或 它的一些属性,您要使用@Audited进行审核

问题是如何实现对数据更改的跟踪,例如,主详细表,即Spring Boot/Spring数据中一对多关系中的两个实体


存储数据后,能够获取主实体及其特定版本的详细信息,并具有将其还原为特定版本的功能。

如果使用JPA,对象审核框架(如JPA)可能会有所帮助,对象审核框架(如或可能有帮助)

您可以使用Hibernate Envers审核持久性实体更改并对其进行版本控制

Envers项目的目标是使持久性数据的审核变得容易 上课。您所要做的就是注释您的持久类或 它的一些属性,您要使用@Audited进行审核。对于 对于每个审计实体,将创建一个表,该表将保存 对实体所做更改的历史记录。然后您可以检索和查询 历史数据不费吹灰之力

与Subversion类似,库也有修订的概念。 基本上,一个事务就是一个修订(除非 未修改任何已审核的实体)。由于这些修订是全球性的, 有了修订号,您可以在该位置查询各种实体 修订,检索该位置的数据库(部分)视图 修订您可以找到一个有日期的修订号,以及另一个 反过来,您可以获得提交修订的日期

该库使用Hibernate,需要Hibernate注释或 实体经理。为了使审计工作正常进行,各实体必须 具有不可变的唯一标识符(主键)。您可以使用Envers 无论Hibernate在何处工作:单机版、JBoss AS内部、JBoss Seam 或者春天

您可以使用类似于通过查询数据的方式查询历史数据 Hibernate标准API。实体的审核历史记录可以是 使用
AuditReader
界面访问,可通过 通过
AuditReaderFactory
打开
EntityManager
会话

使用Hibernate Envers您可以记录数据更改,然后使用持久化上下文或SQL访问数据,以便使用提供修订id应用版本更改。使用它您可以完成80%的任务

查看此教程


您可以使用Hibernate Envers来审核和版本化持久性实体更改

Envers项目的目标是使持久性数据的审核变得容易 上课。您所要做的就是注释您的持久类或 它的一些属性,您要使用@Audited进行审核。对于 对于每个审计实体,将创建一个表,该表将保存 对实体所做更改的历史记录。然后您可以检索和查询 历史数据不费吹灰之力

与Subversion类似,库也有修订的概念。 基本上,一个事务就是一个修订(除非 未修改任何已审核的实体)。由于这些修订是全球性的, 有了修订号,您可以在该位置查询各种实体 修订,检索该位置的数据库(部分)视图 修订您可以找到一个有日期的修订号,以及另一个 反过来,您可以获得提交修订的日期

该库使用Hibernate,需要Hibernate注释或 实体经理。为了使审计工作正常进行,各实体必须 具有不可变的唯一标识符(主键)。您可以使用Envers 无论Hibernate在何处工作:单机版、JBoss AS内部、JBoss Seam 或者春天

您可以使用类似于通过查询数据的方式查询历史数据 Hibernate标准API。实体的审核历史记录可以是 使用
AuditReader
界面访问,可通过 通过
AuditReaderFactory
打开
EntityManager
会话

使用Hibernate Envers您可以记录数据更改,然后使用持久化上下文或SQL访问数据,以便使用提供修订id应用版本更改。使用它您可以完成80%的任务

查看此教程