[jboss-user] [Persistence, JBoss/CMP, Hibernate, Database] - Re: Remove item from CMR

murtuza52 do-not-reply at jboss.com
Fri Dec 22 07:15:43 EST 2006


The correct way to remove an item from the OneToMany relation is as follows:

  | @Entity
  | public class A
  | {
  | private Collection<B> bees;
  | @OneToMany (mappedBy="a")
  | public Collection<B> getBs()
  | {
  | return bees;
  | }
  | public void setBs(Collection<B> b)
  | {
  | this. bees = b;
  | }}
  | 


  | @Entity
  | public class B
  | {
  | private A a;
  | @ManyToOne
  | public A getA()
  | {
  | return a;
  | }
  | public void setContact(A a)
  | {
  | this.a = a;
  | }}
  | 


The remove method will look like this in SLSB or SFSB

  | 
  | public void removeAllB(){
  |    for(B b1: a.getBs()){
  |        b1.setContact(null);
  |    }
  | manager.merge(a);
  | }
  | 

Please note in EJB3 the merge method will mark A with null in column for a. This will not remove the record from the database. This must be done using other hibernate specific tags like DELETE_ORPHAN in OneToMany relations or through other techniques.

Murtuza

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3995847#3995847

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3995847



More information about the jboss-user mailing list