-->
These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 
Author Message
 Post subject: Many to Many Delete problem with Annotations
PostPosted: Mon Apr 30, 2012 9:20 pm 
Newbie

Joined: Mon Apr 30, 2012 9:08 pm
Posts: 1
Hi everyone. Sorry if I make a mistake writing but I don't speak english very much.

So, I hope you can help me. I'm trying to delete some records in a many to many relantionship table. My ER is like this
Code:
Equipo                           Equipo_Campeonato                           Campeonato
id (PK)   ------------->          Equipo (PK)                <------------     id (PK)
nombre                           Campeonato (PK)                              nombre

I have this code for my entities.

Code:
@Entity
@Table(name="campeonato"
    ,catalog="sistemafutbol"
)
public class Campeonato  implements java.io.Serializable {


     private Integer id;
     private String nombre;
     private Set<Equipo> equipos = new HashSet<Equipo>(0);

    public Campeonato() {
    }

   
    public Campeonato(Liga liga, String nombre) {
        this.liga = liga;
        this.nombre = nombre;
    }
    public Campeonato(Liga liga, String nombre, Set<Equipo> equipos) {
       this.liga = liga;
       this.nombre = nombre;
       this.equipos = equipos;
    }
   
     @Id @GeneratedValue(strategy=IDENTITY)
   
    @Column(name="Id", unique=true, nullable=false)
    public Integer getId() {
        return this.id;
    }
   
    @Column(name="Nombre", nullable=false, length=200)
    public String getNombre() {
        return this.nombre;
    }
@ManyToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY)
    @JoinTable(name="equipoxcampeonaato", catalog="sistemafutbol", joinColumns = {
        @JoinColumn(name="Campeonato", nullable=false, updatable=false) }, inverseJoinColumns = {
        @JoinColumn(name="Equipo", nullable=false, updatable=false) })
    public Set<Equipo> getEquipos() {
        return this.equipos;
    }
}


Code:
@Entity
@Table(name="equipo"
    ,catalog="sistemafutbol"
)
public class Equipo  implements java.io.Serializable {


     private Integer id;
     private String nombre;
     private Set<Campeonato> campeonatos = new HashSet<Campeonato>(0);

    public Equipo() {
    }

   
    public Equipo(String nombre) {
        this.nombre = nombre;
    }
    public Equipo(String nombre, Set<Campeonato> campeonatos) {
       this.nombre = nombre;
       this.campeonatos = campeonatos;
    }
   
     @Id @GeneratedValue(strategy=IDENTITY)
   
    @Column(name="Id", unique=true, nullable=false)
    public Integer getId() {
        return this.id;
    } 
    @Column(name="Nombre", nullable=false, length=200)
    public String getNombre() {
        return this.nombre;
    }

@ManyToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY)
    @JoinTable(name="equipoxcampeonaato", catalog="sistemafutbol", joinColumns = {
        @JoinColumn(name="Equipo", nullable=false, updatable=false) }, inverseJoinColumns = {
        @JoinColumn(name="Campeonato", nullable=false, updatable=false) })
    public Set<Campeonato> getCampeonatos() {
        return this.campeonatos;
    }
}


That's how I add some teams to the tornaments and torunaments to the teams...and works fine!

Code:
                    Session session = HibernateUtil.getSessionFactory().openSession();
                    session.beginTransaction();
                    equipo.getCampeonatos().add(campeonato);
                    session.merge(equipo);
                    session.getTransaction().commit();


But with the delete just giveme an exception or doesn't do anything at all.

Code:
                    Session session = HibernateUtil.getSessionFactory().openSession();
                    session.beginTransaction();
                    equipo.getCampeonatos().remove(campeonato);
                    campeonato.getEquipos().remove(equipo);
                    //session.delete(equipo); -->first try
                    //session.merge(equipo); -->second try
                    session.getTransaction().commit();
                    listaEquiposAgregados.add(equipo);


PLEASE IF ANYONE CAN HELPMEEEEE!!!


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 1 post ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.