2 Replies Latest reply on Nov 18, 2008 2:20 AM by ravi krishna muthireddy

    ejb3.0 deleting objects

    ravi krishna muthireddy Newbie


      I am Ravi, I am having problem with deleting objects which are in relationships(one-many,many-many). ex : if i delete project object. all its associated objects should be deleted . my project object is associated to 3 objects(projectstatus,bid...).

      any help appreciated.

      Thank u

        • 1. Re: ejb3.0 deleting objects
          Wolfgang Knauf Master

          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();

          Hope this helps

          As this question comes up quite often, it is maybe a good time to create a Wiki article about relationships ;-).