Hibernate Books

All times are UTC - 5 hours [ DST ]



Post new topic Reply to topic  [ 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  
Post new topic Reply to topic  [ 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.