可以从相关实体而非受审核实体读取受审核实体的关系

时间:2018-11-26 08:37:12

标签: java hibernate jpa hibernate-envers

在我的应用程序中,我使用Hibernate Envers 4.2.12创建审计跟踪模块。一切正常,但是当我开始记录受审核实体的历史版本时,我在读取受审核实体的对象时遇到了一个问题,该对象也引用了另一个受审核实体。

这种情况是“有2个受审核实体(A / B)具有多对一关系(这意味着实体A具有来自实体B的外键(B_ID)。)当添加或更新实体A的实例时,只需分配或更新实体A的外键(B_ID),这意味着实体B上没有任何更改,因此我在实体B的关系侧使用了@NotAudited

示例:

@Entity
@Audited
public class A {
    @Id
    private long id;

    @ManyToOne
    @JoinColumn(name = "B_ID")
    private B attributeReference;

    //setters and getters
}

@Entity
@Audited
public class B {
    @Id
    private String id;

    @OneToMany(mappedBy = "attributeReference", fetch=FetchType.EAGER)
    @NotAudited
    private List<A> attributeReferences;

    //setters and getters

}    

当我尝试阅读attributeReference时,出现此异常

  

javax.persistence.EntityNotFoundException

因为Envers尝试从相同版本的B_AUD读取它,但是这是错误的,因此我如何从相关实体而不是经审计的实体中获取它呢?

0 个答案:

没有答案