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] Problème de clé composite


Sujet :

Hibernate Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 230
    Points : 132
    Points
    132
    Par défaut [Hibernate] Problème de clé composite
    Bonjour,

    j'ai une table qui comporte une PK composite (3 champs) et un attribut booleén (attr_bool).

    Avec Eclipse, j'ai effectué la synchro et il m'a bien créé le fichier hbm avec ma composite-id et mon champ.

    Seulement, pour ma composite-id il m'a créé une classe TablePK en plus de ma classe Table.

    Ce qui fait que j'ai dans la classe Table les attributs TablePK et attr_bool.
    Dans ma classe TablePK j'ai mes 3 attributs de clé.
    Pour ajouter un enregistrement je dois donc faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new Table(new TablePK(attr1, attr2, attr3));
    Jusqu'ici pas de problème.

    Seulement c'est quand je veux requeter ma table que ca coince :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from Table ma_table, ... where ma_table.attr1 = '';
    ca ne passe pas, hibernate me dit que l'attribut attr1 n'existe pas dans Table. En effet il appartient à TablePK...

    Que dois-je faire pour que ma requete me renvoie les enregistrements filtrés sur attr1 ?

    Merci[/code]

  2. #2
    Membre averti
    Inscrit en
    Août 2005
    Messages
    352
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 352
    Points : 427
    Points
    427
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from Table table where table.tablePK.attr1 = 'toto'
    sera traduit en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select t.attr1, t.attr2, t.attr3, t.attr_bool from table t where t.attr1 = 'toto'

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 230
    Points : 132
    Points
    132
    Par défaut
    Merci msieur le voisin Nantais... J'essaye ca et je te tiens au courant.

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 230
    Points : 132
    Points
    132
    Par défaut
    Cool ca fonctionne...

    En fait il fallait que je fasse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    from Table maTable where maTable.Id.attr1
    car Id est le nom de la clé et TablePK est le nom de la classe.

    Merci pour ces infos !

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

Discussions similaires

  1. Double compositions UML au code JAVA/Hibernate
    Par Drazharian dans le forum ALM
    Réponses: 2
    Dernier message: 02/02/2011, 19h56
  2. Mapping Hibernate : <composite-id>
    Par tome tome dans le forum Hibernate
    Réponses: 6
    Dernier message: 10/11/2009, 15h18
  3. update() hibernate imposiible sur clé composite
    Par yaya0057 dans le forum Hibernate
    Réponses: 2
    Dernier message: 16/02/2009, 16h36
  4. [HIBERNATE] Table de jointure & <composite-element>
    Par miloo dans le forum Hibernate
    Réponses: 1
    Dernier message: 27/06/2006, 12h42
  5. [Hibernate] Mapping one-to-many + cle composite
    Par brainstorm dans le forum Hibernate
    Réponses: 2
    Dernier message: 23/06/2006, 11h51

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