Вы пытаетесь вызвать save, передавая уже существующую сущность:
TypeMouvement typeMouvementFromDB = typeMouvementRepository.findOne(new Long(1));
typeMouvementRepository.save(typeMouvementFromDB);
Отношение имеет только постоянный каскадный тип, хотя:
@OneToMany(mappedBy="typeMouvement", fetch = FetchType.EAGER,cascade = CascadeType.PERSIST)
private List<CompteTypeMouvement> comptes;
Сохранение подразумевается следующим образом (spring-data-jpa-1.11.3):
public <S extends T> S save(S entity) {
if (entityInformation.isNew(entity)) {
em.persist(entity);
return entity;
} else {
return em.merge(entity);
}
}
Это означает, что вместо persist
будет вызываться merge
.
Это если вы добавите merge
к каскаду, он должен работать:
@OneToMany(mappedBy="typeMouvement", fetch = FetchType.EAGER,
cascade = {CascadeType.PERSIST, CascadeType.MERGE})
private List<CompteTypeMouvement> comptes;