У меня обычные отношения родитель-ребенок OneToMany:
@OneToMany(mappedBy = "mapType", cascade = CascadeType.ALL, orphanRemoval = true)
public List<Child> getChildren() {
return children;
}
У меня достаточно стандартные варианты использования:
Необходимо удалить детей при сохранении - это нормально работает.
Добавление новых детей путем добавления в коллекцию. Это хорошо работает для уже настойчивых родителей, но не работает для новых родителей. Однако EntityManager.merge действительно сохраняет нового родителя с новыми дочерними элементами.
Почему добавление новых дочерних элементов не работает для новых родительских объектов? Они определенно существуют до того, как называются persist.
Кстати, я в Hibernate 3.6.6.