Я родители-> Детской двунаправленная связью следующим образом ...Spring Data JPA - загрузка родители после явного удаления ребенка возвращает коллекцию детей с удаленным ребенком
class Parent{
@OneToMany(mappedBy="parent", fetch = FetchType.EAGER)
Collection<Child> children;
}
class Child{
@ManyToOne
@JoinColumn(name="PARENT_ID")
private Parent parent;
}
Когда я удалить ребенок в явном виде, и после этого груза его родитель (со всеми детьми), я получаю ранее удаленные ребенка в детской коллекции родителя ... поставщик JPA является Hibernate ...
Child child= childRepo.findOne(CHILD_ID);
childRepo.delete(child);
childRepo.flush();
// next, returns collection without deleted child
Collection<Child> children= childRepo.findAll();
Parent parent = parentRepo.findById(PARENT_ID);
/// next, returns collection including deleted child
Collection<Child> parentChildren = parent.getChildren();
Я не понимаю, в чем проблема? Каждый метод find * выполняет select (в списке эти SELECT записываются в консоль), но они возвращают разные результаты ...
Огромное вам спасибо ... Я знал, что по умолчанию FetchType для OneToMany является ленивым, и я также подумал, что это тоже значение по умолчанию для ManyToOne ... –