Hi!
I'm using JPA over Hibernate in my web-app. Here are two entities (only getters are shown):
class Child { private Parent parent; @ManyToOne(optional=false) @JoinColumn(name="parent_id", referencedColumnName="parent_id", nullable=false, updatable=false) public Parent getParent() { return parent; } } class Parent { private Collection children; @OneToMany(fetch=FetchType.EAGER, mappedBy="parent", cascade={CascadeType.ALL}) public Collection getChildren() { return children; } }
As you see Parent
and Child
relate as "on-to-many".OK.
Now I need to load a Parent
instance, remove some or all children and save the changes. Below is code which does not work for me:
Parent p = entityManager.find(Parent.class, 12345L); // load entity p.getChildren().clear(); // remove all children entityManager.merge(p); // try to save
Child entities are not remove in the example above. Now I have to manually call entityManager.remove()
for each child.
Is there any easier way to manage child collection? Please notice that I don't want to use Hibernate-specific functionality, only pure JPA.
Regards, Andrey