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

Développement Web en Java Discussion :

Duplicate entry for key


Sujet :

Développement Web en Java

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Points : 56
    Points
    56
    Par défaut Duplicate entry for key
    Bonjour à tous,

    Je me suis récemment mis au Java, et me retrouve face à un petit problème dont je n'arrive pas à trouver la solution :/.

    Alors voilà, j'ai des produits, qui appartiennent à des catégories ... Mais lorsque je veux ajouter un produit, je ne peux pas en ajouter un, si il possède le même prix/nom etc.. Je me retrouve face à une "MySQLIntegrityConstraintViolationException: Duplicate entry 'variable' for key 'content'"

    Je souhaitais voir cette erreur plus tard, mais là j'ai exactement la même chose lorsque j'update un produit !

    Y-a t'il une annotation spéciale à mettre (étant donné que le problème ne se fait pas au niveau de la catégorie du produit vu qu'il a un @ManyToOne) ?

    J'ai beau chercher, je ne sais pas comment faire :/

    Je vous présente ci-dessous la manière dont j’exécute un update:

    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
     
            @Override
            public boolean updateProduct(Product product) {
              EntityManager em = emf.createEntityManager();
              Product productx = em.find(Product.class, product.getId());
              try{
                em.getTransaction().begin();
                productx.setName(product.getName());
                productx.setContent(product.getContent()); 
                productx.setPrice(product.getPrice());
                productx.setCategory(product.getCategory()); 
                em.getTransaction().commit();
              } finally {
                em.close();
                return false;
              }
            }
    Je vous remercie d'avance pour l'aide que vous pourriez m'apporter

  2. #2
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    Déjà c'est bizare d'avoir un find et un update dans deux transactions différentes.

    Ensuite, pourquoi tu ne fais pas un merge ?
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Points : 56
    Points
    56
    Par défaut
    Bonjour, et merci pour ta réponse .

    Et bien justement, j'ai déjà essayé avec un merge, de cette façon, avec le même succès que précédement:
    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
     
    @Override
            public boolean updateProduct(Product product) {
              EntityManager em = emf.createEntityManager();
              Product productx = em.find(Product.class, product.getId());
              try{
                em.getTransaction().begin();
                productx.setName(product.getName());
                productx.setContent(product.getContent()); 
                productx.setPrice(product.getPrice());
                productx.setCategory(product.getCategory());
                em.merge(productx);
                em.getTransaction().commit();
              } finally {
                em.close();
                return false;
              }
            }
    Autrement, comme je l'ai dit, je débute un peu en java, donc je suis encore loin d'avoir tout compris ^^.

    Mais ça me paraissait logique de récupérer un "produit spécifique" avec find, et ensuite de le mettre à jour ... Je fais certainement mal ! ^^

  4. #4
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    Qu'est ce qui te fait penser que ça ne marche pas ? Tu as une exception ? une trace à nous montrer ?
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Points : 56
    Points
    56
    Par défaut
    Voilà ce que ça me donne:

    Les deux causes mères:
    org.hibernate.exception.ConstraintViolationException: could not insert: [com.argetprod.supcommerce.entity.Product]
    com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'Test' for key 'name'

  6. #6
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    ah mais je suis con, ça serait pas tout simplement un update que tu veux faire ?
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Points : 56
    Points
    56
    Par défaut
    Oui c'est exactement ça ^^ (désolé pour le retard)

  8. #8
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    N'oublie pas de marquer resolu
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  9. #9
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Points : 56
    Points
    56
    Par défaut
    Mais.. Je sais pas comment faire ! xD

    Et autrement, comment est-ce que je peux éviter ce problème de duplicate key lors d'un INSERT ? ^^

  10. #10
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    Tu cliques sur le bouton "résolu" tout simplement ;-) LOL

    Sinon, pour éviter la duplication d'index, le plus simple est encore de ne pas chercher à imposer un index. C'est la base, via hibernate, qui va décider de l'index.
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  11. #11
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par thierryler Voir le message
    Tu cliques sur le bouton "résolu" tout simplement ;-) LOL
    Haha désolé je me suis mal exprimé ^^. Pour l'update, je sais pas comment faire du coup ! Je m'y prenais mal ?

    Et comment "ne pas imposer d'index ?"

    J'enchaîne les questions là ^^

  12. #12
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    Quand tu fais ton insert, tu laisse l'id à null tout simplement.

    Pour le update, peut etre juste .update()
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  13. #13
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Points : 56
    Points
    56
    Par défaut
    Excuse moi de galérer autant :/

    Mais pour l'insert je n'y arrive pas:

    Voilà mon Servlet:
    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
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
     
     
            if(request.getParameter("type") != null && request.getParameter("nom") != null){
     
    		String categoryIdParam = request.getParameter("categorie");
    		BigDecimal price = new BigDecimal(request.getParameter("price"));
     
    		Product product = new Product();
    		product.setName(request.getParameter("nom"));
    		product.setContent(request.getParameter("type"));
    		product.setPrice(price);
                    product.setId(null);
     
    		if(categoryIdParam != null && !categoryIdParam.isEmpty()) {
    			Long categoryId = Long.valueOf(categoryIdParam);
    			Category category = categoryDao.getCategoryById(categoryId);
    			product.setCategory(category);
    		}
     
    		productDao.addProduct(product);
     
     
                    HttpServletResponse resp = (HttpServletResponse) response;
                    resp.sendRedirect(getServletContext().getContextPath()+"/auth/listProduct");
     
             }
     
        }
    Et mon JpaProductDao:

    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
    @Override
    	public Product addProduct(Product product) {
    		Product result = null;
    		EntityManager em = emf.createEntityManager();
    		try {
    			em.getTransaction().begin();
    			em.persist(product);
    			em.getTransaction().commit();
    			result = product;
    		} finally {
    			if(em.getTransaction().isActive()) em.getTransaction().rollback();
    			em.close();
    		}
    		return result;
    	}
    Et j'ai encore une fois la même erreur:
    com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'oui' for key 'content'

  14. #14
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    Fais voir la structure de ta table Product. Fais juste un export depuis ton phpmyadmin

    Et essaie avec ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Product product = new Product();
    product.setName("foo1");
    product.setContent("foo2");
    product.setPrice(12.3);
    product.setId(null);
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  15. #15
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Points : 56
    Points
    56
    Par défaut
    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
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
     
     
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
     
    --
    -- Base de données: `supcommerce`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `products`
    --
     
    CREATE TABLE IF NOT EXISTS `products` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `content` varchar(255) DEFAULT NULL,
      `name` varchar(255) DEFAULT NULL,
      `price` float DEFAULT NULL,
      `category_fk` bigint(20) DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `content` (`content`),
      UNIQUE KEY `name` (`name`),
      UNIQUE KEY `price` (`price`),
      KEY `FKF2D1C164487F026B` (`category_fk`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=16 ;
     
    --
    -- Contenu de la table `products`
    --
     
    INSERT INTO `products` (`id`, `content`, `name`, `price`, `category_fk`) VALUES
    (2, 'variable', 'Test', 28, 1),
    (4, 'variables', 'Testf', 285, 1),
    (5, 'oui', 'Oui', 15, 1),
    (15, 'ouiff', 'Ouiff', 1, 1);
     
    --
    -- Contraintes pour les tables exportées
    --
     
    --
    -- Contraintes pour la table `products`
    --
    ALTER TABLE `products`
      ADD CONSTRAINT `FKF2D1C164487F026B` FOREIGN KEY (`category_fk`) REFERENCES `categories` (`id`);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Product product = new Product();
    product.setName("foo1");
    product.setContent("foo2");
    product.setPrice(12.3);
    product.setId(null);
    ça ça marche, mais une seule fois, comme les autres ... Si j'ai le maleur de vouloir créer un nouveau produit avec le même nom, c'est à dire "foo1", il me balance un duplicate content :/


    PS: L'update est Ok (du moment que je ne "duplicate content" pas), disons que j'avais fait une bête erreur d’inattention ^^

  16. #16
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    mon SQL est peut etre un peu rouillé, mais là, ta table a l'air de dire

    "on peut pas avoir deux produit avec le meme non, ni deux produits avec le même prix", quel genre de magasin ne peut pas avoir deux produits avec le même prix??

  17. #17
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    Bon, c'est tout simplement ce que je pensais, ça vient de ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UNIQUE KEY `name` (`name`),
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  18. #18
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Points : 56
    Points
    56
    Par défaut
    Oui, c'est exactement ça, je me suis rendu compte après coup que j'avais bêtement mis une annotation de ce type:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @Column(unique=true, nullable=true)
    sur la quasi totalité de mes colonnes ^^.

    Mais du coup je me retrouve face à un autre problème..
    J'avais mis comme annotation sur mon entité Product:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @Table(name="PRODUCTS")
    Afin de définir ma table products.
    Mais de ce fait, je me retrouve face à quelque chose d'étrange (du moins pour moi ^^).

    Lorsque dans mon Servlet, je fais ceci:
    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
    @Override
        protected void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
     
     
            if(request.getParameter("type") != null && request.getParameter("nom") != null){
     
    		String categoryIdParam = request.getParameter("categorie");
    		BigDecimal price = new BigDecimal(request.getParameter("price"));
     
    		Product product = new Product();
    		product.setName(request.getParameter("nom"));
    		product.setContent(request.getParameter("type"));
    		product.setPrice(price);
                    product.setId(null);
     
    		if(categoryIdParam != null && !categoryIdParam.isEmpty()) {
    			Long categoryId = Long.valueOf(categoryIdParam);
    			Category category = categoryDao.getCategoryById(categoryId);
    			product.setCategory(category);
    		}
     
    		//productDao.addProduct(product);
     
     
             }
     
     
             HttpServletResponse resp = (HttpServletResponse) response;
             resp.sendRedirect(getServletContext().getContextPath()+"/auth/listProduct");
     
        }
    Un produit s'ajoute à la Base, alors que je ne suis même pas passé par JPA ! (il est en commentaire ci-dessus).
    Alors que si j'enlève l'annotation @Table, il cherche mes produits dans la table "Product" qui n'existe pas bien évidement ...

    C'est compliqué de se plonger dans Java alors que l'on a eu que 3 jours de cours condensés ^^

  19. #19
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    ouvre un second sujet pour ce dernier point car le fil commence à être long et mélangé
    Thierry Leriche-Dessirier
    Consultant Java JEE Web Agile freelance
    Rédacteur pour Developpez
    Professeur de Génie Logiciel à l'ESIEA

    Site : http://www.icauda.com / Linked'in : http://www.linkedin.com/in/thierryler / Twitter : @ThierryLeriche

  20. #20
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2008
    Messages : 108
    Points : 56
    Points
    56
    Par défaut
    Ok . Je ferme celui-ci !
    En tout cas, merci beaucoup pour l'aide vraiment utile que vous m'apportez

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. ERROR : Duplicate entry '' for key 2
    Par Estragon007 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/07/2013, 21h26
  2. [MySQL] UPDATE: ERROR DUPLICATE ENTRY FOR KEY PRIMARY
    Par Blackcocktail dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 19/12/2011, 15h07
  3. Réponses: 3
    Dernier message: 02/06/2011, 16h47
  4. Réponses: 7
    Dernier message: 29/11/2010, 17h34
  5. duplicate entry for key 'primary'
    Par mariek dans le forum Requêtes
    Réponses: 4
    Dernier message: 12/09/2009, 16h43

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