Я должен удалить коллекцию строк дочерних объектов из строк родительских объектов.Но кое-как, как моя родительская сущность также удаляется.
Я вижу выше проблему из-за "CascadeType.ALL" на стороне отношений @ManyToOne.Но если я удаляю этот CascadeType.ALL в @ManyToOne, я получаю исключение ниже, когда выполняю persist для Parent, у которого тоже есть дочерний объект.
org.springframework.dao.InvalidDataAccessApiUsageException: объект ссылается на несохраненный временный экземпляр - сохранитьвременный экземпляр перед сбросом:
@Entity
public class Parent {
@Id
@Column(name = "ID")
private Long id;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "parent", orphanRemoval=true)
private Set<Child> childs = new HashSet<Child>();
...
}
@Entity
public class Child {
@Id
@Column(name = "ID")
private Long id;
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name="PARENTID", nullable = false)
private Parent parent;
...
}
Класс обслуживания:
final Parent parent = parentDao.find(parentId, status);
parent.getChilds().clear();