ConcurrentModificationException: 当更新 spring 数据 jpa 父实体时

ConcurrentModificationException: When update spring data jpa parent entity

我有两个 jpa 实体:Family 和 FamilyMembers。

家庭:

@Entity
@Table(name = "family")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Family implements Serializable {

    @OneToMany(mappedBy = "family")
    private Set<FamilyMember> familyMembers = new HashSet<>();
}

家庭成员

@Entity
@Table(name = "family_member")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class FamilyMember implements Serializable {

    @ManyToOne()
    @JoinColumn(name="family_id")
    private Family family;
}

家庭实体是家庭成员的父实体。

当我尝试使用以下代码更新父实体 "family" 时出现问题:

familyRepository.save(family);

我遇到以下异常:

java.util.ConcurrentModificationException:

请指教!

我已经解决了问题

我在同一个事务中调用了以下方法:


    @Override
    @Transactional(readOnly = true)
    public Optional<EntityAuditConfiguration> findByEntityName(String entityName) {
        return entityAuditConfigurationRepository.findByEntityName(entityName);
    }

我更改了创建新 spring 交易的方法,如下所示:

    @Override
    @Transactional(readOnly = true, propagation = Propagation.REQUIRES_NEW)
    public Optional<EntityAuditConfiguration> findByEntityName(String entityName) {
        return entityAuditConfigurationRepository.findByEntityName(entityName);
    }