Большинство ORM будут вести себя таким образом.
Объект в кэше не обновляется из базы данных (дополнительное чтение не требуется). Также думайте об объектной модели и постоянстве как об отдельном. Т.е. держите вашу объектную модель в согласии с самим собой и не полагайтесь на механизм постоянства, чтобы сделать это за вас.
Итак, если вы хотите, чтобы объект был добавлен в коллекцию, сделайте это в коде "setParent".
Лучшая практика в этом случае заключается в том, чтобы одна сторона отношений выполняла всю работу и позволяла другой стороне подчиняться ей. Также я бы предложил использовать доступ к полям, а не доступ к методам, чтобы вы могли настраивать методы с большей гибкостью.
Добавить метод к родителю с именем addChild
public void addChild(Child child) {
child.setParent0(this);
getChildren().add(individualNeed);
}
, а затем сделать setParent in Child:
public void setParent(Parent parent) {
parent.addChild(child);
}
setParent0 in Child - это свойство stter для parent для child.
public void setParent0(Parent parent) {
this.parent = parent;
}
Я бы также предложил, чтобы метод "getChildren" возвращал неизменную коллекцию, чтобы разработчики случайно не использовали этот метод (я научился всему этому нелегко).
Еще одна вещь, у вас должен быть нулевой код проверки и другие защитные элементы в приведенном выше коде, я оставил это для ясности.