IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Hibernate Java Discussion :

probleme mapping ManyToMany


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de amadoulamine1
    Inscrit en
    Avril 2005
    Messages
    260
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 260
    Par défaut probleme mapping ManyToMany
    Bonjour à tous .
    J'ai 2 tables archi et forme et la table_relation: archi_forme.
    j'ai une relation oneToMany entre les 2.

    en concret:
    archi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    @Entity
    @Table(name = "archi", catalog = "test")
    public class Archi implements java.io.Serializable {
    	private static final long serialVersionUID = 7170259565513611236L;
    	private Integer id;
    	private String numA;
    	private String nom;
    	private boolean enabled;
    	private Set<Forme> formes;
     
    	public Sfd() {}
     
    	public Sfd(String numA, String nom, ) {
    		this.numA = numA;
    		this.nom = nom;
    		this.enabled = true;
    		this.formes=new HashSet<Forme>();
    	}
     
    	@Id
    	@GeneratedValue(strategy = IDENTITY)
    	@Column(name = "id", unique = true, nullable = false)
    	public Integer getId() {return this.id;}
    	public void setId(Integer id) {	this.id = id;}
     
    	@Column(name = "numA", nullable = false, length = 20)
    	public String getNumA() {return this.numA;	}
    	public void setNumA(String numA) {	this.numA = numA;}
     
    	@Column(name = "nom", nullable = false, length = 50)
    	public String getNom() {return this.nom;}
    	public void setNom(String nom) {this.nom = nom;}
     
    	@Column(name = "enabled", nullable = false)
    	public boolean isEnabled() {return this.enabled;	}
    	public void setEnabled(boolean enabled) {this.enabled = enabled;}
     
    	/**********************************************************/
    	@ManyToMany(fetch = FetchType.LAZY)
    	@Cascade( { CascadeType.SAVE_UPDATE })
    	@JoinTable(name = "archi_forme", catalog = "test", 
    			joinColumns = { @JoinColumn(name = "idArchi", nullable = false) }, 
    			inverseJoinColumns = { @JoinColumn(name = "idForme", nullable = false) })
    	public Set<Forme> getFormes() {return this.formes;}
    	public void setFormes(Set<Forme> formes) {this.formes = formes;}
    	public void addForme(Forme forme){
    		this.formes.add(forme);
    	}
    }
    Forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    @Entity
    @Table(name = "forme", catalog = "test")
    public class Forme implements java.io.Serializable {
    	private static final long serialVersionUID = -6205175265164825024L;
    	private Integer id;
    	private String libelle;
    	private boolean enabled;
    	private Set<Archi> archis;
     
    	public FormeJuridique() {}
     
    	public FormeJuridique(String libelle, boolean enabled) {
    		this.libelle = libelle;
    		this.enabled = enabled;
    		this.archis=new HashSet<Archi>();
    	}
     
    	@Id
    	@GeneratedValue(strategy = IDENTITY)
    	@Column(name = "id", unique = true, nullable = false)
    	public Integer getId() {
    		return this.id;
    	}
     
    	public void setId(Integer id) {
    		this.id = id;
    	}
     
    	@Column(name = "libelle", nullable = false, length = 20)
    	public String getLibelle() {return this.libelle;}
     
    	public void setLibelle(String libelle) {this.libelle = libelle;}
     
    	@Column(name = "enabled", nullable = false)
    	public boolean isEnabled() {return this.enabled;}
    	public void setEnabled(boolean enabled) {	this.enabled = enabled;}
     
    	@ManyToMany(fetch = FetchType.LAZY,mappedBy = "forme")
    	@Cascade( { CascadeType.SAVE_UPDATE })
    	@JoinTable(name = "archi_forme", catalog = "test", 
    			joinColumns = { @JoinColumn(name = "idForme", nullable = false) }, 
    			inverseJoinColumns = { @JoinColumn(name = "idArchi", nullable = false) })
    	public Set<Archi> getArchis() {
    		return this.archis;
    	}
     
    	public void setArchis(Set<Archi> archis) {
    		this.archis = archis;
    	}
    }
    Archi_Forme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    public class ArchiForme implements java.io.Serializable {
     
    	/**
             * 
             */
    	private static final long serialVersionUID = -5636523418562821907L;
    	private Integer id;
    	private int idArchi;
    	private int idForme;
    	private Date dateDebut;
    	private Date dateFin;
    	private boolean enabled;
     
     
    	public ArchiForme() {
    	}
     
    	public ArchiForme(int idArchi, int idForme, Date dateDebut) {
    		this.idArchi= idArchi;
    		this.idForme = idForme;
    		this.dateDebut = dateDebut;
    		this.enabled = true;
    	}
     
    	@Id
    	@GeneratedValue(strategy = IDENTITY)
    	@Column(name = "id", unique = true, nullable = false)
    	public Integer getId() {
    		return this.id;
    	}
     
    	public void setId(Integer id) {
    		this.id = id;
    	}
     
    	@Column(name = "idArchi", nullable = false)
    	public int getIdArchi() {
    		return this.idArchi;
    	}
     
    	public void setIdArchi(int idArchi) {
    		this.idArchi = idArchi;
    	}
     
    	@Column(name = "idForme", nullable = false)
    	public int getIdForme() {
    		return this.idForme;
    	}
     
    	public void setIdForme(int idForme) {
    		this.idForme = idForme;
    	}
     
    	@Temporal(TemporalType.DATE)
    	@Column(name = "dateDebut", length = 10)
    	public Date getDateDebut() {
    		return this.dateDebut;
    	}
     
    	public void setDateDebut(Date dateDebut) {
    		this.dateDebut = dateDebut;
    	}
     
    	@Temporal(TemporalType.DATE)
    	@Column(name = "dateFin", length = 10)
    	public Date getDateFin() {
    		return this.dateFin;
    	}
     
    	public void setDateFin(Date dateFin) {
    		this.dateFin = dateFin;
    	}
     
    	@Column(name = "enabled", nullable = false)
    	public boolean isEnabled() {
    		return this.enabled;
    	}
     
    	public void setEnabled(boolean enabled) {
    		this.enabled = enabled;
    	}
     
     
    }
    Quand j'execute l'orsque je met une commande de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    FormeJ f=new Forme("Carre", true);
    	Archi archi=new Archi("archi1", "archi1");
    		archi.addForme(fj;
    		archiService.save(archi);
    la valeur de archi est sauve ainsi que celle de forme.
    ^Par contre pour la table relationarchi_forme il nya rien de sauve !!! Quelqu'un peut il m'aider pleaaase

  2. #2
    Membre averti
    Inscrit en
    Décembre 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 51
    Par défaut cascade
    Salut,

    Je crois qu'il faut lier tes objets en utilisant cascade="all" ou cascade="save-update" au niveau du fichier hbm.xml.

    A+

Discussions similaires

  1. [hibernate 2.0]Probleme mapping
    Par kekesilo dans le forum Hibernate
    Réponses: 1
    Dernier message: 07/12/2008, 15h29
  2. Probleme map iterator
    Par Veovis dans le forum SL & STL
    Réponses: 2
    Dernier message: 02/06/2008, 22h08
  3. problem mapping Resources
    Par ahury dans le forum Spring
    Réponses: 1
    Dernier message: 30/09/2007, 21h48
  4. Tomcat hibernate annotation DAO probleme mapping
    Par bibi73 dans le forum Hibernate
    Réponses: 20
    Dernier message: 20/08/2007, 14h40
  5. [hibernate] Probleme mapping -> clé composée
    Par zorm dans le forum Hibernate
    Réponses: 3
    Dernier message: 04/07/2007, 12h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo