gpt4 book ai didi

java - 防止 Hibernate 关系表被审计

转载 作者:行者123 更新时间:2023-12-02 13:27:05 25 4
gpt4 key购买 nike

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

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

...
}

PersonModel 配置如下:

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

保留收据与上述配置配合得很好。但是,当尝试持久化一个 Person 时,它会崩溃,因为该实体不存在审核表。

最佳答案

您真正想要做的是在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 {
}

关于java - 防止 Hibernate 关系表被审计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43352664/

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