跟踪标题-详细信息关系中的更改

问题描述

我有两个类 Loan 和 LoanGuarantors 的 Header-Detail 关系,Loan 类如下所示:

@Entity
@Table(name = "LOAN")
@Getter
@Setter
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Loan extends BaseEntity {

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "USER_ID",updatable = false,nullable = false)
    private User user;

    @Column(name = "AMOUNT",nullable = false)
    private Double amount;

    @Enumerated
    @Column(name = "LOAN_TYPE",columnDeFinition = "smallint",nullable = false)
    private LoanType loanType;

    @Enumerated
    @Column(name = "LOAN_STATUS",nullable = false)
    private LoanStatus loanStatus;
}

和 LoanGuarantor 类定义如下:

@Entity
@Table(name = "LOAN_GUaraNTORS")
@Getter
@Setter
@AllArgsConstructor
@NoArgsConstructor
public class LoanGuarantors extends BaseEntity {

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "GUaraNTOR_ID",nullable = false)
    private User guarantor;

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "LOAN_ID",nullable = false)
    private Loan loan;

    @Column(name = "GUaraNTE_AMOUNT",nullable = false)
    private Double guaranteAmount;

}

当 LoanStatus 提交更改时,我想在审计表中保留具有相同版本的记录(Loan、LoanGuarantor)的历史记录(假设我们每个都有一个审计表,例如,loan_audit 和loan_guarantor_audit)在贷款表中。这个问题的合适解决方案是什么? 我在考虑 Hibernate Envers 或其他 CDC 解决方案(如 Debezium),但问题是当 Loan 表中发生更改时,它们只会跟踪 Loan 表,而不是它们的关系。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)