Hi Ravi,
the easiest way is to define a "Cascade" attribute on your relationship
annotation:
@OneToMany(mappedBy="...", cascade=CascadeType.ALL, fetch=...)
It gets more complicated if you cannot simply cascade the deletes (would be no good idea
on many-to-many relationships ;-) ). In this case, you have to cleanup both sides of the
relation before deleting child or parent. So, if you have an entity "Parent" and
an Entity "Child" with a bidirectional "ManyToMany" relationship, and
you want to remove one child from the relationship (without deleting it), you would have
to do this (snippet for a SessionBean which contains a reference to the entity manager):
Child child = this.entityManager.getReference(Child.class, childId );
|
| Collection<Parent> listParents = child.getParents();
| Iterator<Parent> iteratorParents = listParents.iterator();
| while (iteratorParents.hasNext() == true)
| {
| Parent parentForChild = iteratorParents.next();
| parentForChild.getChilds().remove(child);
| }
|
| this.entityManager.remove(child);
|
Hope this helps
As this question comes up quite often, it is maybe a good time to create a Wiki article
about relationships ;-).
Wolfgang
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4189788#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...