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 :

GRAVE champs TEXT sur des vue MySQL


Sujet :

Hibernate Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut GRAVE champs TEXT sur des vue MySQL
    Bonjour à tous,

    J'ai quelques ennuis que je n'arrive pas à résoudre...

    Voici un extraits de ma console au démarrage :

    (2 type d'erreur, soit sur la notion de TEXT/BLOB soir sur le fait que la table existe déjà...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    21 déc. 2007 13:38:10 org.hibernate.tool.hbm2ddl.DatabaseMetadata getTableMetadata
    INFO: table not found: t_contenu_t_albums
     
    21 déc. 2007 13:38:10 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
    GRAVE: Unsuccessful: create table PFE.t_contenu_t_albums (ID_CONTENU integer not null, ID_UTILISATEUR_AUTEUR integer not null, ETAT_CONTENU varchar(128) not null, NOUVEAU_CONTENU varchar(128) not null, DATE_AJOUT_CONTENU datetime not null, NB_AFFICHAGE_CONTENU integer not null, ID_CONTENU_ARTISTES integer not null, NOM_ALBUM varchar(255) not null, DESCRIPTION_ALBUM text not null, primary key (ID_CONTENU, ID_UTILISATEUR_AUTEUR, ETAT_CONTENU, NOUVEAU_CONTENU, DATE_AJOUT_CONTENU, NB_AFFICHAGE_CONTENU, ID_CONTENU_ARTISTES, NOM_ALBUM, DESCRIPTION_ALBUM))
     
    21 déc. 2007 13:45:17 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
    GRAVE: BLOB/TEXT column 'DESCRIPTION_ALBUM' used in key specification without a key length
    ......
    //autre type d'erreur apparaissants :
    21 déc. 2007 13:45:18 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
    GRAVE: Table 't_contenu_t_annonce' already exists
    Précision ces erreurs surviennent sur des "vues" (view) MySQL.
    Aucune erreur sur les tables composant les vues en question, ni en particulier sur les champs de type TEXT.

    Voici le fichier de map XML de la vue t_contenu_t_albums :
    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
     
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- Generated 1 d?c. 2007 16:27:36 by Hibernate Tools 3.2.0.CR1 -->
    <hibernate-mapping>
        <class name="model.TContenuTAlbums" table="t_contenu_t_albums" catalog="PFE">
            <composite-id name="id" class="model.TContenuTAlbumsId">
                <key-property name="idContenu" type="int">
                    <column name="ID_CONTENU" />
                </key-property>
                <key-property name="idUtilisateurAuteur" type="int">
                    <column name="ID_UTILISATEUR_AUTEUR" />
                </key-property>
                <key-property name="etatContenu" type="string">
                    <column name="ETAT_CONTENU" length="128" />
                </key-property>
                <key-property name="nouveauContenu" type="string">
                    <column name="NOUVEAU_CONTENU" length="128" />
                </key-property>
                <key-property name="dateAjoutContenu" type="timestamp">
                    <column name="DATE_AJOUT_CONTENU" length="0" />
                </key-property>
                <key-property name="nbAffichageContenu" type="java.lang.Integer">
                    <column name="NB_AFFICHAGE_CONTENU" />
                </key-property>
                <key-property name="idContenuArtistes" type="int">
                    <column name="ID_CONTENU_ARTISTES" />
                </key-property>
                <key-property name="nomAlbum" type="string">
                    <column name="NOM_ALBUM" />
                </key-property>
                <key-property name="descriptionAlbum" type="string">
                    <column name="DESCRIPTION_ALBUM" length="65535" />
                </key-property>
            </composite-id>
        </class>
    </hibernate-mapping>
    Je ne vois pas pourquoi j'ai ce type d'erreur.
    Pouvez me donner quelques pistes de réflexions ou abérations que j'ai réalisées ?

    Merci de votre aide en tout cas !!!

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Tu veux dire que "t_contenu_t_albums" est une vue ?
    Parce que là, il essaye de créer la table et forcément, il ne peut pas...

    As-tu activé hibernate.hbm2ddl.auto dans le fichier hibernate.cfg.xml ?

    A+

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    Oui cette option est activée --> update.

    Oui "t_contenu_t_albums" est une vue.

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Alors là, tu as un problème...
    Le mapping référence une table (pas une vue) et donc il essayera de te créer une table (create table...) qui entrera en conflit avec la vue existante.

    Peux-tu retirer l'option hibernate.hbm2ddl.auto déjà pour voir si hibernate est capable de "mapper" une vue (je n'en suis pas persuadé, je cherche en parallèle...) ?

    Comment as-tu créé la vue ?

    A+

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    J'ai créé la vue normalement je ne comprend pas vraiment ta question...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CREATE VIEW t_contenu_t_albums.....
    Ca ne change rien si j'enleve l'option....

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Je voulais voir l'ordre de création de la vue pour te proposer une alternative, mais pour ça, il faudrait le code complet

    Une possibilité de mapper une vue (d'après la doc de référence d'hibernate), serait de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <class name="Summary">
    <subselect>
    select item.name, max(bid.amount), count(*)
    from item
    join bid on bid.item_id = item.id
    group by item.name
    </subselect>
    
    <synchronize table="item"/>
    <synchronize table="bid"/>
    <id name="name"/>
    ...
    </class>
    A+

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    ce que tu me propose c'est dans modifier les fichiers XML ?

    Le problème c'est que les fichiers XML je n'y ai jamais touché, ils ont été créé automatiquement. Est ce que je dois tous les reprendre ? Que se passera t-il à la prochaine modification dans la base ?

    Merci de ton aide !!!

  8. #8
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Tous, non, mais celui qui référence une vue... Le fichier unNom.hbm.xml.

    Tu cherches bien à mapper une vue (SQL) vers un objet (POJO) ou je me plante dans tes intentions ?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    Oui c'est bien ca. Mais j'ai mis sur mon premier post le fichier xml correspondant à ma vue. Dis moi ce que tu en penses.

  10. #10
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Oups, je suis un peu à la bourre !

    Ton mapping fait référence à une table, donc il faudrait t'inspirer de l'exemple pour passer par le subselect, mais je ne l'ai jamais utilisé, c'est de la théorie, donc, "à tester"
    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
     
    <class name="model.TContenuTAlbums">
        <subselect>
            select * from t_contenu_t_albums
        </subselect>
        <id name="idContenu" type="int">
            <column name="ID_CONTENU" />
        </id>
        <property name="idUtilisateurAuteur" type="int">
            <column name="ID_UTILISATEUR_AUTEUR" />
        </property>
        <property name="etatContenu" type="string">
            <column name="ETAT_CONTENU" length="128" />
        </property>
        <property name="nouveauContenu" type="string">
            <column name="NOUVEAU_CONTENU" length="128" />
        </property>
        <property name="dateAjoutContenu" type="timestamp">
            <column name="DATE_AJOUT_CONTENU" length="0" />
        </property>
        <property name="nbAffichageContenu" type="java.lang.Integer">
            <column name="NB_AFFICHAGE_CONTENU" />
        </property>
        <property name="idContenuArtistes" type="int">
            <column name="ID_CONTENU_ARTISTES" />
        </property>
        <property name="nomAlbum" type="string">
            <column name="NOM_ALBUM" />
        </property>
        <property name="descriptionAlbum" type="string">
            <column name="DESCRIPTION_ALBUM" length="65535" />
        </property>
    </class>
    Un autre point qui me parait "out", c'est la définition des clés.
    Tous tes champs sont clés, ça me paraît excessif, tu en as besoin ?

    A+

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    Le problème c'est que ce n'est pas moi qui ai créé ces fichiers....

    Je suis bien d'accord que c'est pas normal toutes ces clefs, mais je ne sais pas pourquoi il m'a fait ca.

    J'ai essayé ca :
    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
     
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- Generated 1 d?c. 2007 16:27:36 by Hibernate Tools 3.2.0.CR1 -->
    <hibernate-mapping>
        <class name="model.TContenuTAlbums" >
            <subselect>
    			select *
    			from t_contenus, t_albums
    			join id_contenu on t_contenus.id_contenu = t_albums.id_contenu
    		</subselect>
    		<synchronize table="t_contenus"/>
    		<synchronize table="t_albums"/>
        </class>
    </hibernate-mapping>
    Le problème c'est qu'il me fait la même erreur au démarrage du serveur, faut-il faire une autre action afin qu'il le prenne en compte ?

    Merci beaucoup !!!

  12. #12
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Il génère tous les attributs comme partie de la clé quand il n'y a pas de chemin d'accès primaire défini, c'est certainement le cas de ta vue...
    As-tu essayé le paramétrage que je t'avais donné ?

    Je ne comprends pas trop le besoin de passer par une vue, quelque chose m'échappe dans le principe, pourrais-tu dire ce que tu cherches à faire précisément ?

    (Là, je vais partir en réunion, donc si personne d'autre ne prend la relève, je te retrouve demain)

    A+

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    Bon et bien je te retrouve demain.

    Ce que je cherche à faire, avoir une vue sur deux tables. Dans mon MCD l'une (t_albums) hérite de l'autre (t_contenu).

    Ce qui fait que dans t_contenu j'ai des colonnes generales et dans t_albums dans colonnes specifiques. Je voudrait avoir une vue afin d'avoir qu'un seul accès au lieu d'en avoir deux à la base. Avec la vue sur les deux tables je peux reccuperer en une fois l'ensemble des colonnes (générales & spécifiques).

    Est ce que c'est plus clair ? Mais je suis à la limite de laisser tomber ces vues qui me posent plus de problèmes que de facilité pour le moment.

    Tiens moi au courant de ton avis sur la question.

    Le paramétrage que tu m'a filé c'est celui que j'ai testé adapté à mon cas il me semble. Simple jointure sur les deux tables dont les id sont egaux. Je me trompe ?

  14. #14
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    En clair, tu as une spécialisation, tu regroupes tous les champs communs dans la table t_contenu et (n) tables spécialisées (dont t_albums) qui possèdent les champs spécifiques au type de contenu, c'est bien ça ?

    Si c'est le cas, tu te trompes d'approche, mais je préfère attendre que tu me confirmes l'approche

    A+

  15. #15
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    Oui c'est bien cette approche.

    J'ai une table t_contenus et n tables spécialisée sur les contenus.
    Les tables spécialisées ont toutes un identifiant id-contenus qui est aussi le même dans la table t_contenus.

    C'est à dire qu'un enregistrement de la table t_contenu correspond forcément à un enregistrement d'une table spécialisée.

    Et la vue etait la pour avoir en apparence qu'une "table" (vue) qui regroupe l'ensemble des champs.

    Dis moi....

  16. #16
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    Là, il faudrait utiliser la méthode avec discriminator d'hibernate.

    En fait, tu définis n classes pour tes n tables spécialisées + 1 correspondant aux données communes (étendue par les n).
    Dans le mapping, tu as donc n définitions.
    J'utilise ce mécanisme avec des EJB3 et annotations (et un JPA hibernate) et c'est vraiment parfait, le problème, c'est que je ne l'ai jamais fais avec les fichiers hbm.xml, mais l'approche doit être similaire.
    Voici un lien vers la doc hibernate http://www.hibernate.org/hib_docs/v3...heritance.html
    elle est assez claire je pense.
    Pour toi, c'est la section 9.1.3 qu'il faut mettre en oeuvre.

    Si tu as un problème, n'hésite pas à poursuivre la discussion...
    A+

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    Je n'ai pas essayé mais comme je n'étais pas sur voici ce que je mettrais :

    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
     
    <class name="t_contenu" table="T_CONTENU">
        <id name="id" type="long" column="ID_CONTENU">
            <generator class="native"/>
        </id>
     
        //ici mes variables globales ?
        <property name="amount" column="AMOUNT"/>
        ...
        <subclass name="t_contenu_t_album">
            <join table="T_ALBUMS">
                <key column="ID_CONTENU"/>
                //ice mes variables spécialisées ?
                <property name="creditCardType" column="CCTYPE"/>
                ...
            </join>
        </subclass>
     
    </class>
    J'ai supprimé tout ce qui est "discriminator", je n'en ai pas et à priori ce n'est pas obligatoire. Mais cela je le met dans quel fichier ????

    Dans le fichier de ma vue ? Dans le fichier de ma table mere ? dans chaque fichier de mes tables filles ?

    Merci beaucoup de ton aide !!!!!

  18. #18
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Points : 9 529
    Points
    9 529
    Billets dans le blog
    1
    Par défaut
    J'utiliserais le fichier hbm de la table mère personnellement...
    Et à priori, pas besoin de fichiers pour les tables filles...

    En EJB3 (désolé, c'est la seule expérience que j'ai dans le domaine), on créé un objet t_contenu_t_album (dans ton cas), et lorsque tu vas le "persister", hibernate s'occupera de dispatcher les informations dans les 2 tables (génial non ?!)

    Pour le reste, je pense que ton code est correcte, à tester...

    A+

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    Alors je ne comprend plus....

    J'ai essayé de mettre cela en place. Pour cela qu'est ce que j'ai fait ?

    1. / j'ai supprimé les fichiers hbm.xml correspondants aux vues
    2. / j'ai supprimé les fichiers java correspondants aux vues
    3. / j'ai supprimé les references aux vues dans le fichier hibernate.cfg.xml

    Avant d'aller plus loin test et :

    Et il met sort toujours les même résultats dans la console.............

    Il fait toujours les même actions....je ne comprend donc vraiment pas.
    J'ai bien enregistré mon fichier, je redemarre bien le serveur, mais il ne prend pas en compte mes modifications à première vue.

    Est ce que tu vois d'ou cela viens ?
    Est ce que d'autres aurait une idée ?

    Merci de votre aide dans tous les cas !!!

  20. #20
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    Points : 123
    Points
    123
    Par défaut
    Je me suis apercu de quelques erreure, voici le code que j'ai fait qui me semble beaucoup plus adapté :

    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
     
    <joined-subclass name="t_albums" table="T_ALBUMS">
     
                <key column="ID_CONTENU"/>
                <property name="idContenuArtistes" type="int">
                    <column name="ID_CONTENU_ARTISTES" />
                </property>
                <property name="nomAlbum" type="string">
                    <column name="NOM_ALBUM" />
                </property>
                <property name="descriptionAlbum" type="string">
                    <column name="DESCRIPTION_ALBUM" length="65535" />
                </property>
     
        </joined-subclass>
    Seulement il me fait une erreur au démarrage du serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GRAVE: Initial SessionFactory creation failed.org.hibernate.MappingException: proxy class not found: t_albums
    Et j'ai beau chercher sur le net, je ne trouve pas grand chose. Merci de ton aide.

Discussions similaires

  1. Contrôle de champ numérique sur des champs texte
    Par CinePhil dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 07/11/2013, 10h44
  2. [Forms 6i] Ecrans basés sur des vues
    Par macben dans le forum Oracle
    Réponses: 3
    Dernier message: 11/01/2006, 16h53
  3. 8i : sql loader et champ texte sur plusieurs lignes
    Par naonedboy dans le forum SQL*Loader
    Réponses: 1
    Dernier message: 23/11/2005, 10h07
  4. [jtable] Champs texte sur pls ligne dans cellule
    Par doudine dans le forum Composants
    Réponses: 8
    Dernier message: 17/11/2005, 12h36
  5. Réponses: 10
    Dernier message: 10/05/2005, 11h35

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