ConcurrentModificationException: при обновлении данных весны родительский объект jpa - PullRequest
0 голосов
/ 26 марта 2019

У меня есть две сущности 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<>();
}

FamilyMember

@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:

Пожалуйста, сообщите!

1 Ответ

0 голосов
/ 26 марта 2019

Я решил проблему.

Я вызывал метод ниже в той же транзакции:


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

Я изменил метод для создания новой весенней транзакции следующим образом:

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