我有两个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;
}
家庭实体是家庭成员的父实体。
当我尝试使用以下代码更新父实体“家族”时,我的问题就出现了:
familyRepository.save(family);
我遇到以下异常:
java.util.ConcurrentModificationException:
请告知!
答案 0 :(得分:0)
我已经解决了问题。
我正在同一笔交易中调用以下方法:
@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);
}