我使用Spring Boot 1.3.2和Spring Data JPA 1.9.4与MS Sql server2014数据库进行映射多对多关系的过程 .

我有两个表实体Book&Publisher . 他们与BookPublisher表和BookPublisher实体有多对多的关系 .

我使用hibernate envers 4.3.3 final来审计每个实体 . 通过在每个实体上放置@Audited注释,可以自动创建Book_AUD和Publisher_AUD以及BookPublisher_AUD表 .

Book_AUD和Publisher_AUD正在正常审核插入,更新和删除 .

将记录保存在具有发布者记录集的Book表中时,记录将保存到连接表 . 但审计仅在插入BookPublisher_AUD表时发生,而不是在更新删除时发生 .

我使用@AuditJoinTable注释来审计关系映射表,如下所示 .

@ManyToMany(fetch = FetchType.EAGER)
    @JoinTable(name = "BookPublisher", joinColumns = @JoinColumn(name = "BookId", referencedColumnName = "BookId"), inverseJoinColumns = @JoinColumn(name = "PublisherId ", referencedColumnName = "PublisherId"))
    @WhereJoinTable(clause = "isActive = 1 ")
    @AuditJoinTable
    private Set<Publisher> publishers;

有没有办法审计hibernate envers中的关系映射表或使用@AuditJoinTable注释有什么不对?