java - MySQL : Update archive table after successful transaction in parent table

标签 java mysql spring-boot

<分区>

在我的 Java-Spring Boot 项目中,为 MySQL 数据库中的每个客户相关表创建了一个存档表。在每次成功的插入或更新事务中,我必须在存档表中创建一个新记录,并在其父表中更新相同的值。

例如: 有一个名为 table_1 的表及其名为 table_1_arch 的存档表。因此,如果在 table_1 中插入了一条记录,那么 table_1_arch 也应该使用插入到 table_1 中的具有相同值的新记录进行更新。类似地,如果在 table_1 中更新了任何记录,那么 table_1_arch 应该再次使用与 table_1 中更新的记录具有相同值的新记录进行更新。

注意:- 所有存档表都具有来自其父表的具有相同数据类型的所有列以及两个额外的列,如 table_arch_id 和 table_arch_flag。这是客户表及其存档表的架构。

表_1:

COLUMN_NAME     COLUMN_TYPE   IS_NULLABLE   COLUMN_KEY   COLUMN_DEFAULT                       
----------      ------------   -----------   ----------   --------------  
table_1_id      smallint(6)     NO              PRI            (null)                
column_2        varchar(100)    YES                            (null)                                         

TABLE_1_ARCH:

COLUMN_NAME        COLUMN_TYPE   IS_NULLABLE   COLUMN_KEY   COLUMN_DEFAULT                       
----------         ------------  -----------   ----------   -------------  
table_1_arch_id    smallint(6)     NO              PRI            (null)       
table_1_id         smallint(6)     YES                            (null)                         
column_3           varchar(100)    YES                            (null)                                         
table_1_arch_flag  varchar(1)      YES                            A                                         

最佳答案

1) 使用逆向。在此处查看详细信息:https://hibernate.org/orm/envers/ .然后您将获得很多开箱即用的功能。

2) 或者,您可以使用@PrePersist、@PreUpdate、@PreRemove 并实现您需要的逻辑。

关于java - MySQL : Update archive table after successful transaction in parent table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58047277/

相关文章:

java - 如何将postgres脚本传输到hsqldb脚本?

spring-boot - 通过环境变量覆盖 Spring Boot yaml 属性

java - 如何在 JHipster 中调试 'Your request cannot be processed'?

java - Spock 测试与 junit 5 测试一起不运行

java - Hibernate 的 createCriteria() 是否清理输入?

java - Java 中的链接方法 JSONObject/JSONArray

java - 为什么 Java 9 不简单地将类路径上的所有 JAR 都变成自动模块?

php - 将MySQL表与多维数组相关转换

mysql - 即使 SQL 查询找到行,Cakephp Auth 登录也会返回 false

mysql - 如何防止在mysql中插入不同的2列组合