防止对休眠关系表进行审核



我正在使用Envers进行审计,并试图阻止实体被审计。如果实体是关系的一部分,如下所示,我希望 FK 字段保留在相关的审计表上(用于Receipt_Audit personId(。

@Entity
@Audited
@Table(name = "Receipt")
public class ReceiptModel {
  @Valid
  @ManyToOne
  @JoinColumn(name = "personId")
  private PersonModel person;
  ...
}

人物模型配置如下:

@Entity
@Audited(targetAuditMode = NOT_AUDITED)
@Table(name = "Person")
public class PersonModel {
  ...
}

保留收据适用于上述配置。但是,当尝试保留某个人时,它会爆炸,因为该实体不存在审核表。

您实际要做的是对Receipt内部的实际关系使用@Audited(targetAuditMode=NOT_AUDITED),并且不要将Person标记为已审核。

@Entity
@Audited
@Table(name = "Receipt")
public class ReceiptModel {
  @Valid
  @ManyToOne
  @JoinColumn(name = "personId")
  @Audited(targetAuditMode = NOT_AUDITED)
  private PersonModel person;
  ...
}
@Entity
@Table(name = "Person")
public class PersonModel {
}

最新更新