Java Hibernate Envers-如何审核处于@OneToMany关系中的实体中的更改?

Java Hibernate Envers-如何审核处于@OneToMany关系中的实体中的更改?,java,hibernate,hibernate-envers,Java,Hibernate,Hibernate Envers,假设我有两个实体,A和B。A与B有@OneToMany关系,我审核了B中的所有属性。当我使用Envers获得修订时,我得到的只是A和B之间关系的更改,但我还需要获得B属性的更改。有办法做到这一点吗 提前谢谢 我正在对以下映射进行假设: @Entity @Audited public class EntityA { /* other properties & getters/setters */ @OneToMany(mappedBy = "a", cascade = Ca

假设我有两个实体,A和B。A与B有@OneToMany关系,我审核了B中的所有属性。当我使用Envers获得修订时,我得到的只是A和B之间关系的更改,但我还需要获得B属性的更改。有办法做到这一点吗


提前谢谢

我正在对以下映射进行假设:

@Entity
@Audited
public class EntityA {
    /* other properties & getters/setters */
    @OneToMany(mappedBy = "a", cascade = CascadeType.ALL)
    private List<EntityB> bList;
}

@Entity
@Audited
public class EntityB {
    /* other properties & getters/setters */
    @ManyToOne
    private EntityA a;
}

在这种情况下,如果需要
EntityB
的单独修订,实际上,您需要通过
AuditReader
界面专门查询
EntityB

您是在使用
org.hibernate.envers.global\u with_modified\u标志
还是在关系的
@Audited
注释上设置
modifiedFlags=true
?标签放在哪里?在关系上或在实体B的财产中实体B标记为@auditable?是的,实体B标记为@Audited。您如何修改实体A和实体B?如果你能用你的实体映射更新你的帖子,那也会很有帮助。谢谢,这就是我所说的,我会尝试一下,让你知道。
entityManager.getTransaction().begin();
final EntityA a = entityManager.find( EntityA.class, aId );
for ( EntityB b : a.getbList() ) {
    b.setName( b.getName() + "-modified" );
}
entityManager.merge( a );
entityManager.getTransaction().commit();