首页 > 解决方案 > Hibernate envers:组合注释 @Audited 和 @AttributeOverride 不起作用

问题描述

我正在尝试通过 Hibernate envers 功能提出一个经过审计的实体。我有一个基类:结果

@Entity
@Table(name = "result")
public class Result {

    @EmbeddedId
    @AttributeOverride(name = "value", column = @Column(name = "id"))
    private ResultId id;

    @Audited
    @Column
    private String value;

    @Audited
    @AttributeOverride(name = "value", column = @Column(name = "updated_by"))
    private PersonId updatedBy;

}

在应用程序中,我对实体updated_by字段进行了更改。但在审计表中,我只看到value属性的更改,但updated_by始终为 NULL。在我看来,这@Audited@AttributeOverride不兼容的。

如何实现对updated_by字段的审核?

标签: hibernatehibernate-envers

解决方案


您需要使用@AuditOverride而不是@Audited,因为您要覆盖该字段的默认审计行为。


推荐阅读