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

JPA Java Discussion :

erreur JPA Hibernate association


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Par défaut erreur JPA Hibernate association
    Bonjour à tous,

    dans mon schèma SQL, j'ai une association porteuse entre 2 entités.

    une fois le schèma généré via JPA Tools dans Eclipse, voici les 3 tables que j'obtiens.

    table poste
    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
     
    package model.dto;
     
    import static javax.persistence.GenerationType.IDENTITY;
     
    import java.util.List;
    import java.util.Set;
     
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.ManyToOne;
    import javax.persistence.OneToMany;
    import javax.persistence.Table;
     
    @Entity
    @Table(schema="developpement", name="postes")
    public class Poste implements Model {
    	@Id
    	@GeneratedValue(strategy=IDENTITY)
    	private int id;
     
    	private String matricule;
     
    	private String description;
     
    	@OneToMany(mappedBy="poste")
    	private Set<Occuper> occuperCollection;
     
    	@OneToMany(mappedBy="poste")
    	private List<Qualifier> qualifierCollection;
     
    	@ManyToOne
    	private Metier metier;
     
    	private static final long serialVersionUID = 1L;
     
    	public Poste() {
    		super();
    	}
     
    	public int getId() {
    		return this.id;
    	}
     
    	public void setId(int id) {
    		this.id = id;
    	}
     
    	public String getMatricule() {
    		return this.matricule;
    	}
     
    	public void setMatricule(String matricule) {
    		this.matricule = matricule;
    	}
     
    	public String getDescription() {
    		return this.description;
    	}
     
    	public void setDescription(String description) {
    		this.description = description;
    	}
     
    	public Set<Occuper> getOccuperCollection() {
    		return this.occuperCollection;
    	}
     
    	public void setOccuperCollection(Set<Occuper> occuperCollection) {
    		this.occuperCollection = occuperCollection;
    	}
     
    	public List<Qualifier> getQualifierCollection() {
    		return this.qualifierCollection;
    	}
     
    	public void setQualifierCollection(List<Qualifier> qualifierCollection) {
    		this.qualifierCollection = qualifierCollection;
    	}
     
    	@Override
    	public Model create() {
    		return new Poste();
    	}
     
    	@Override
    	public boolean equals(Object obj) {
    		if (obj instanceof Poste)
    			return (this.getId() == ((Poste) obj).getId());
    		return false;
    	}
     
    	@Override
    	public int hashCode() {
    		return this.getId();
    	}
     
    	@Override
    	public String toString() {
    		return matricule;
    	}
     
    	public Metier getMetier() {
    		return this.metier;
    	}
     
    	public void setMetier(Metier metier) {
    		this.metier = metier;
    	}
    }
    table competence
    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
     
    package model.dto;
     
    import static javax.persistence.GenerationType.IDENTITY;
     
    import java.util.List;
    import java.util.Set;
     
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.Id;
    import javax.persistence.OneToMany;
    import javax.persistence.Table;
     
    @Entity
    @Table(schema="developpement", name="Competences")
    public class Competence implements Model {
    	@Id
    	@GeneratedValue(strategy=IDENTITY)
    	private int id;
     
    	private String description;
     
    	private String libelle;
     
    	@OneToMany(mappedBy="competence")
    	private Set<Disposer> disposerCollection;
     
    	@OneToMany(mappedBy="competence")
    	private List<Qualifier> qualifierCollection;
     
    	@OneToMany(mappedBy="competence")
    	private Set<Valoriser> valoriserCollection;
     
    	private static final long serialVersionUID = 1L;
     
    	public Competence() {
    		super();
    	}
     
    	public int getId() {
    		return this.id;
    	}
     
    	public void setId(int id) {
    		this.id = id;
    	}
     
    	public String getDescription() {
    		return this.description;
    	}
     
    	public void setDescription(String description) {
    		this.description = description;
    	}
     
    	public String getLibelle() {
    		return this.libelle;
    	}
     
    	public void setLibelle(String libelle) {
    		this.libelle = libelle;
    	}
     
    	public Set<Disposer> getDisposerCollection() {
    		return this.disposerCollection;
    	}
     
    	public void setDisposerCollection(Set<Disposer> disposerCollection) {
    		this.disposerCollection = disposerCollection;
    	}
     
    	public List<Qualifier> getQualifierCollection() {
    		return this.qualifierCollection;
    	}
     
    	public void setQualifierCollection(List<Qualifier> qualifierCollection) {
    		this.qualifierCollection = qualifierCollection;
    	}
     
    	public Set<Valoriser> getValoriserCollection() {
    		return this.valoriserCollection;
    	}
     
    	public void setValoriserCollection(Set<Valoriser> valoriserCollection) {
    		this.valoriserCollection = valoriserCollection;
    	}
     
    	public Model create() {
    		return new Competence();
    	}
     
    	@Override
    	public boolean equals(Object obj) {
    		if (obj instanceof Competence)
    			return (this.getId() == ((Competence) obj).getId());
    		return false;
    	}
     
    	@Override
    	public int hashCode() {
    		return this.getId();
    	}
     
    	@Override
    	public String toString() {
    		return libelle;
    	}
    }
    et enfin la table qualifier :
    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
     
    package model.dto;
     
    import javax.persistence.EmbeddedId;
    import javax.persistence.Entity;
    import javax.persistence.ManyToOne;
    import javax.persistence.Table;
     
    @Entity
    @Table(schema="developpement")
    public class Qualifier implements Model {
    	@EmbeddedId
    	private QualifierPK pk;
     
    	private int niveau;
     
    	@ManyToOne
    	private Competence competence;
     
    	@ManyToOne
    	private Poste poste;
     
    	private static final long serialVersionUID = 1L;
     
    	public Qualifier() {
    		super();
    	}
     
    	public QualifierPK getPk() {
    		return this.pk;
    	}
     
    	public void setPk(QualifierPK pk) {
    		this.pk = pk;
    	}
     
    	public int getNiveau() {
    		return this.niveau;
    	}
     
    	public void setNiveau(int niveau) {
    		this.niveau = niveau;
    	}
     
    	public Competence getCompetence() {
    		return this.competence;
    	}
     
    	public void setCompetence(Competence competence) {
    		this.competence = competence;
    		this.pk.setCompetenceId(competence.getId());
    	}
     
    	public Poste getPoste() {
    		return this.poste;
    	}
     
    	public void setPoste(Poste poste) {
    		this.poste = poste;
    		this.pk.setPosteId(poste.getId());
    	}
     
    	@Override
    	public Model create() {
    		return new Qualifier();
    	}
     
    	@Override
    	public int getId() {
    		return this.pk.hashCode();
    	}
     
    	@Override
    	public String toString() {
    		return String.valueOf(niveau);
    	}
     
    }
    j'ai 3 managed beans (1 pour chaque table). Toute modification sur competence et poste fonctionne (insert, update, delete, select)

    mais quand je tente d'insérer une qualification, voici le message d'erreur que j'obtiens :

    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
     
    org.postgresql.util.PSQLException: ERREUR: La colonne qualifier0_.competenceid n'existe pas
    	org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1592)
    	org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1327)
    	org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:192)
    	org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
    	org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
    	org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:254)
    	org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
    	org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
    	org.hibernate.loader.Loader.doQuery(Loader.java:674)
    	org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
    	org.hibernate.loader.Loader.doList(Loader.java:2213)
    	org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
    	org.hibernate.loader.Loader.list(Loader.java:2099)
    	org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
    	org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
    	org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
    	org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
    	org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
    	org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:65)
    	model.dao.DaoModel.getAll(DaoModel.java:48)
    	controller.HandlerModel.getObjects(HandlerModel.java:70)
    	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    	sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    	java.lang.reflect.Method.invoke(Unknown Source)
    	javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
    	javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
    	com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:72)
    	org.apache.el.parser.AstValue.getValue(AstValue.java:97)
    	org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
    	org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
    	javax.faces.component.UIData.getValue(UIData.java:609)
    	javax.faces.component.UIData.getDataModel(UIData.java:1124)
    	javax.faces.component.UIData.setRowIndex(UIData.java:451)
    	com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:77)
    	javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:813)
    	javax.faces.component.UIData.encodeBegin(UIData.java:962)
    	javax.faces.component.UIComponent.encodeAll(UIComponent.java:934)
    	javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
    	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
    	javax.faces.component.UIComponent.encodeAll(UIComponent.java:936)
    	javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
    	javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
    	javax.faces.component.UIComponent.encodeAll(UIComponent.java:936)
    	javax.faces.component.UIComponent.encodeAll(UIComponent.java:942)
    	com.sun.faces.application.ViewHandlerImpl.doRenderView(ViewHandlerImpl.java:271)
    	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:202)
    	org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
    	org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:189)
    	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:109)
    	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
    	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
    	javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
    	org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:147)
    	org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:276)
    	org.ajax4jsf.Filter.doFilter(Filter.java:175)
    le message est clair mais pourquoi écrit-il qualifier0_.competenceid vu que cela devrait être qualifier0_.competence_id ??

    merci sincèrement à ceux qui s'auront m'apporter de l'aide !

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 156
    Par défaut
    On n'a pas le code de QualifierPK .
    Mais je me demande tout simplement si tu as bien regénerer ou même générer, le schema de ta base de données ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Par défaut
    Bonjour !!

    voici le code de la classe QualifierPK :
    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
     
    package model.dto;
     
    import java.io.Serializable;
     
    import javax.persistence.Embeddable;
    import javax.persistence.JoinColumn;
     
    @Embeddable
    public class QualifierPK implements Serializable {
     
    	@JoinColumn(name="competence_id", insertable=false, updatable=false)
    	private int competenceId;
     
    	@JoinColumn(name="poste_id", insertable=false, updatable=false)
    	private int posteId;
     
    	private static final long serialVersionUID = 1L;
     
    	public QualifierPK() {
    		super();
    	}
     
    	public int getCompetenceId() {
    		return this.competenceId;
    	}
     
    	public void setCompetenceId(int competenceId) {
    		this.competenceId = competenceId;
    	}
     
    	public int getPosteId() {
    		return this.posteId;
    	}
     
    	public void setPosteId(int posteId) {
    		this.posteId = posteId;
    	}
     
    	@Override
    	public boolean equals(Object o) {
    		if (o == this) {
    			return true;
    		}
    		if ( ! (o instanceof QualifierPK)) {
    			return false;
    		}
    		QualifierPK other = (QualifierPK) o;
    		return (this.competenceId == other.competenceId)
    			&& (this.posteId == other.posteId);
    	}
     
    	@Override
    	public int hashCode() {
    		return this.competenceId
    			^ this.posteId;
    	}
     
    }
    le schéma a bien été généré à partir de JPA Tools sous Eclipse.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Par défaut
    bon j'ai trouvé ma réponse en procédant d'une manière différente. Pour celles et ceux qui auraient des problèmes avec des classes embedded voici une alternative.

    classe qualifier:
    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
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
     
    package model.dto;
     
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Id;
    import javax.persistence.IdClass;
    import javax.persistence.JoinColumn;
    import javax.persistence.ManyToOne;
    import javax.persistence.Table;
     
    @SuppressWarnings("serial")
     
    @Entity
    @IdClass(QualifierPK.class)
    @Table(name = "qualifier")
    public class Qualifier implements Model {
     
    	@Id
    	@Column(name = "poste_id")
    	private int poste_id;
     
    	@Id
    	@Column(name = "competence_id")
    	private int competence_id;
     
    	@Column(name = "niveau")
    	private int niveau;
     
    	@ManyToOne
    	@JoinColumn(name = "competence_id", nullable = false, insertable=false, updatable=false)
    	private Competence competence;
     
    	@ManyToOne
    	@JoinColumn(name = "poste_id", nullable = false, insertable=false, updatable=false)
    	private Poste poste;
     
    	private static final long serialVersionUID = 1L;
     
    	public Qualifier() {
    		super();
    	}
     
    	public Qualifier(int poste_id, int competence_id, int niveau, Competence competence, Poste poste) {
    		super();
    		this.poste_id = poste_id;
    		this.competence_id = competence_id;
    		this.niveau = niveau;
    		this.competence = competence;
    		this.poste = poste;
    	}
     
    	public int getNiveau() {
    		return this.niveau;
    	}
     
    	public void setNiveau(int niveau) {
    		this.niveau = niveau;
    	}
     
    	public Competence getCompetence() {
    		return this.competence;
    	}
     
    	public void setCompetence(Competence competence) {
    		this.competence = competence;
    		this.competence_id = this.competence.getId();
    	}
     
    	public Poste getPoste() {
    		return this.poste;
    	}
     
    	public void setPoste(Poste poste) {
    		this.poste = poste;
    		this.poste_id = this.poste.getId();
    	}
     
    	@Override
    	public boolean equals(Object obj) {
    		if (obj instanceof Qualifier)
    			return (this.getId() == ((Qualifier) obj).getId());
    		return false;
    	}
     
    	@Override
    	public int hashCode() {
    		return this.getId();
    	}
     
    	public Model create() {
    		return new Qualifier();
    	}
     
    	public int getId() {
    		return 0;
    	}
     
    	public int getPoste_id() {
    		return poste_id;
    	}
     
    	public void setPoste_id(int poste_id) {
    		this.poste_id = poste_id;
    	}
     
    	public int getCompetence_id() {
    		return competence_id;
    	}
     
    	public void setCompetence_id(int competence_id) {
    		this.competence_id = competence_id;
    	}
    }
    classe qualifierPK:
    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
     
    package model.dto;
     
    import java.io.Serializable;
     
    @SuppressWarnings("serial")
    public class QualifierPK implements Serializable {
     
    	private int competence_id;
    	private int poste_id;
     
    	private static final long serialVersionUID = 1L;
     
    	public QualifierPK() {
    		super();
    	}
     
    	public QualifierPK(int poste_id, int competence_id) {
    		super();
    		this.poste_id = poste_id;
    		this.competence_id = competence_id;
    	}
     
    	public int getCompetenceId() {
    		return this.competence_id;
    	}
     
    	public void setCompetenceId(int competenceId) {
    		this.competence_id = competenceId;
    	}
     
    	public int getPosteId() {
    		return this.poste_id;
    	}
     
    	public void setPosteId(int posteId) {
    		this.poste_id = posteId;
    	}
     
    	@Override
    	public boolean equals(Object o) {
    		if (o == this) {
    			return true;
    		}
    		if ( ! (o instanceof QualifierPK)) {
    			return false;
    		}
    		QualifierPK other = (QualifierPK) o;
    		return (this.competence_id == other.competence_id)
    			&& (this.poste_id == other.poste_id);
    	}
     
    	@Override
    	  public int hashCode() {
    	    return (String.valueOf(competence_id) + String.valueOf(poste_id)).hashCode();
    	  }
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 19/03/2013, 05h26
  2. Réponses: 12
    Dernier message: 11/05/2009, 14h51
  3. erreur de persistence jpa/hibernate
    Par Jacobian dans le forum JPA
    Réponses: 6
    Dernier message: 08/01/2009, 17h28
  4. erreur d 'hibernate
    Par mihmi dans le forum Hibernate
    Réponses: 2
    Dernier message: 09/10/2006, 12h35
  5. erreur requete hibernate
    Par rosros dans le forum Hibernate
    Réponses: 6
    Dernier message: 14/09/2006, 10h27

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