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 :

[hibernate] Probleme mapping -> clé composée


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut [hibernate] Probleme mapping -> clé composée
    Bonjour,

    Le problème à été traité plus d'une fois mais j'ai rien trouvé qui réponde à mon problème donc je me permet de vous en faire part.
    Je souhaite récupérer les informations de 3 tables qui sont liées les unes au autres. C'est un schema classique où une commune est dans un département qui lui meme est dans une région.

    J'ai les tables suivantes qui me pose problème car j'ai ma table commune qui à une clé primaire composée mais en plus un des attributs de cette clé primaire qui référence la clé primaire de la table département.

    C'est du postgreSQL comme base
    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
     
    CREATE TABLE "public"."sit_com_commune" (
      "com_cod_com" CHAR(3) NOT NULL, 
      "dep_cod_dep" CHAR(3) NOT NULL, 
      "com_artmin_com" VARCHAR(5), 
      "com_nccenr_com" VARCHAR(70), 
      CONSTRAINT "pk_sit_com_commune" PRIMARY KEY("dep_cod_dep", "com_cod_com"), 
      CONSTRAINT "com_dep" FOREIGN KEY ("dep_cod_dep")
        REFERENCES "public"."sit_dep_departement"("dep_cod_dep")
        ON DELETE RESTRICT
        ON UPDATE RESTRICT
        NOT DEFERRABLE
    ) WITHOUT OIDS;
     
    COMMENT ON COLUMN "public"."sit_com_commune"."com_cod_com"
    IS 'Code commune';
     
    COMMENT ON COLUMN "public"."sit_com_commune"."dep_cod_dep"
    IS 'Code département';
     
    COMMENT ON COLUMN "public"."sit_com_commune"."com_artmin_com"
    IS 'Article Commune';
     
    COMMENT ON COLUMN "public"."sit_com_commune"."com_nccenr_com"
    IS 'Nom Commune';
    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
    CREATE TABLE "public"."sit_dep_departement" (
      "dep_cod_dep" CHAR(3) NOT NULL, 
      "reg_region" CHAR(2) NOT NULL, 
      "dep_nccenr_dep" VARCHAR(70), 
      CONSTRAINT "pk_sit_dep_departement" PRIMARY KEY("dep_cod_dep"), 
      CONSTRAINT "dep_reg" FOREIGN KEY ("reg_region")
        REFERENCES "public"."sit_reg_region"("reg_region")
        ON DELETE RESTRICT
        ON UPDATE RESTRICT
        NOT DEFERRABLE
    ) WITHOUT OIDS;
     
    COMMENT ON COLUMN "public"."sit_dep_departement"."dep_cod_dep"
    IS 'Code département';
     
    COMMENT ON COLUMN "public"."sit_dep_departement"."reg_region"
    IS 'Code Région';
     
    COMMENT ON COLUMN "public"."sit_dep_departement"."dep_nccenr_dep"
    IS 'Nom département';
    J'ai les 2 fichiers de mapping suivant :
    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
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping
    PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="i2.xxx.yyy.zzz.reference.niveau.valueobject">
     
    <class name="DepartementElementReference" table="sit_dep_departement">
        <id name="codeDepartement" type="string">
            <column name="dep_cod_dep" sql-type="char(3)" unique="true"/>
        </id>
        <property name="codeRegion" type="integer">
            <column name="reg_region" sql-type="char(2)" not-null="true"/>
        </property>
        <property name="nomDepartement" type="string">
            <column name="dep_nccenr_dep" sql-type="varchar(70)" not-null="false"/>
        </property>
    </class>
    </hibernate-mapping>
    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
     
    <?xml version="1.0"?>
    <!DOCTYPE hibernate-mapping
    PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="i2.xxx.yyy.zzz.reference.niveau.valueobject">
        <class name="CommuneElementReference" table="sit_com_commune">
            <composide-id name="comp_id" class="communePK">
                <key-property name="codeCommune" type="string" >
                    <column name="com_cod_com" sql-type="char(3)" not-null="true"/>
                </key-property>
                <key-property name="codeDepartement" type="string" >
                    <column name="dep_cod_dep" sql-type="char(3)" not-null="true"/>
                </key-property>
            </composide-id>
            <property name="article" type="string">
                <column name="com_artmin_com" sql-type="varchar(5)" not-null="false"/>
            </property>
            <property name="nomCommune" type="string">
                <column name="com_nccenr_com" sql-type="varchar(70)" not-null="false"/>
            </property>
        </class>
    </hibernate-mapping>
    Et sur le dernier, j'ai le message d'erreur suivant que je ne comprends pas. j'ai beau regarder par rapport à la DTD des fichiers de mapping sur le site d'hibernate, je vois pas pourquoi je me fais renvoyer balader comme ca.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Severity and Description    Path    Resource    Location    Creation Time    Id
    The content of element type "class" must match "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,resultset*,(query|sql-query)*)".
    Si quelqu'un peut m'aider la dessus, parce que j'ai du mal à trouver. Merci d'avance

  2. #2
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Change ton "composide-id" en "composite-id"

  3. #3
    Membre émérite Avatar de zorm
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    584
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 584
    Par défaut
    Eh galere, quel boulet

    Merci

  4. #4
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Si tu utilises Eclipse utilise un editeur XML, du style XMLbuddy qui te signalera ce genre d'erreurs d'inatention.

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

Discussions similaires

  1. Tomcat hibernate annotation DAO probleme mapping
    Par bibi73 dans le forum Hibernate
    Réponses: 20
    Dernier message: 20/08/2007, 14h40
  2. hibernate problem (classe not mapped)
    Par oughlad dans le forum Hibernate
    Réponses: 11
    Dernier message: 25/06/2007, 19h57
  3. [Hibernate] Problème de mapping ?
    Par n@n¤u dans le forum Hibernate
    Réponses: 3
    Dernier message: 13/06/2006, 08h45
  4. [hibernate] probleme de mapping un-vers-plusieurs
    Par Elmilouse dans le forum Hibernate
    Réponses: 2
    Dernier message: 12/04/2006, 13h37
  5. [hibernate] Mapping avec identifiant composé
    Par miky_jo dans le forum Hibernate
    Réponses: 3
    Dernier message: 11/10/2005, 16h48

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