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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    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
    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+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    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
    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+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 473
    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
    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+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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