JPA2 и hibernate - почему слияния хранят дочерние объекты, а сохраняются - нет? - PullRequest
0 голосов
/ 28 сентября 2011

У меня обычные отношения родитель-ребенок OneToMany:

@OneToMany(mappedBy = "mapType", cascade = CascadeType.ALL, orphanRemoval = true)
public List<Child> getChildren() {
    return children;
}

У меня достаточно стандартные варианты использования:

  • Необходимо удалить детей при сохранении - это нормально работает.

  • Добавление новых детей путем добавления в коллекцию. Это хорошо работает для уже настойчивых родителей, но не работает для новых родителей. Однако EntityManager.merge действительно сохраняет нового родителя с новыми дочерними элементами.

Почему добавление новых дочерних элементов не работает для новых родительских объектов? Они определенно существуют до того, как называются persist.

Кстати, я в Hibernate 3.6.6.

1 Ответ

0 голосов
/ 28 сентября 2011

Попробуйте добавить этот атрибут в @OneToMany аннотацию fetch = FetchType.EAGER.Значением по умолчанию является LAZY.Это будет полезно, потому что hibernate будет управлять коллекцией постоянно, а затем вы будете вносить изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...