Java 列表上的Hibernate Envers错误修改标志

Java 列表上的Hibernate Envers错误修改标志,java,spring,hibernate-envers,Java,Spring,Hibernate Envers,我使用Envers审核数据,有时\u MOD的值不正确。当我在列表中添加元素时,它将停留在0而不是1。但这只发生在特定的情况下 我的实体: @Entity @Table(name = "PERSONNE") @Audited(withModifiedFlag = true) public class PersonEntity { @Id @Column(name = "ID_PERSONNE") private Long id;

我使用Envers审核数据,有时
\u MOD
的值不正确。当我在列表中添加元素时,它将停留在
0
而不是
1
。但这只发生在特定的情况下

我的实体:

@Entity
@Table(name = "PERSONNE")
@Audited(withModifiedFlag = true)
public class PersonEntity {

   @Id
   @Column(name = "ID_PERSONNE")
   private Long id;

   @Column(name = "NAME", length = 100)
   private String name;

   @Audited( withModifiedFlag = true, modifiedColumnName = "SERVICES_MOD")
   private Set<PersonneServiceEntity> services = new HashSet<>(); // Entity with attributs, gettters, setters and envers annotations...

   @Audited( withModifiedFlag = true, modifiedColumnName = "OPT_INS_MOD")
   private Set<OptinEntity> optIns = new HashSet<>();// Entity with attributs, gettters, setters and envers annotations...

  
   // more fields
   // + getters, setteurs, equals, tostring
这就是神奇的发生:当我更新
名称
服务
选项
时。我的数据库中的值都是正确的,我的实体是正确持久化的,除了一个envers列
OPT_-INS_-MOD
OPT_-INS_-MOD==0
)。 但是,如果我没有更新名称(行注释),则所有内容都将正确持久化,包括所有
\u MOD
值(
OPT\u INS\u MOD==1
服务\u MOD
)。 最后,如果我切换
updateSupport(personFromRequest,personFromDB)
updateServices(personFromRequest,personFromDB)
,在这种情况下
OPT\u-INS\u-MOD
是正确的,但不是
SERVICES\u-MOD

我的猜测是,当Envers获取所有修改的字段时会出现问题。因为这对我来说毫无意义

有什么想法吗?我使用的是Envers版本4.3.11。最终版

// personFromDB is retrieve via an Id 
private void update(PersonEntity personFromRequest, PersonEntity personFromDB) {

    personFromDB.setName(personFromRequest.getName());
    updateServices(personFromRequest, personFromDB); // add new support to the list
    updateOptins(personFromRequest, personFromDB); // add new services to the list

    personDao.saveAndFlush(personFromDB);
}