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 :

mapping hibernate -> annotation, cas de l'héritage d'id


Sujet :

Hibernate Java

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut mapping hibernate -> annotation, cas de l'héritage d'id
    Hibernate version:3.2.0

    Bonjour à tous,

    J'ai une série d'entités mappés via un fichier de mapping hibernate et je coince pour le transfert vers des annotations. Hors ce qui était simple avec le mapping semble galère avec les annotations. Toutes mes classes étendent AbstractID qui contient notemment le ID et ses accesseurs. Cette classe abstraite n'est PAS une entité hibernate. Seuls ses enfants en sont. Chaque enfant mappe cet id sur une colone différente de sa propre table. Exemple la class Fonction qui hérite de AbstractId mappe le id sur FCT_ID dans la table FUNCTIONS, la classe utilisateur qui hérite aussi de AbstractId mappe le id sur USER_ID, dans la table USERS.

    En terme de hbm.xml, rien de plus facile à écrire, on fait simplement un mapping complet par classe concrète et basta.

    Comment écrire cette info en annotation. Tous les exemples que j'ai décrivent le Id devant sont accesseur, hors je dois ici mettre l'annotation dans la sous classe, là où il n'y a pas d'accesseur écrit (et pour cause, ils sont hérités). Vais-je devoir repasser sur toutes mes classe pour supprimer cet abstract? Ou existe-t-il un moyen de mentionner des annotations sans pour autant les mettre devant un accesseur ou une propriété (par exemple les mettre devant la classe en disant "c'est valable pour la propriété "id" çà)?

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 962
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Hibernate version:3.2.0

    Bonjour à tous,

    J'ai une série d'entités mappés via un fichier de mapping hibernate et je coince pour le transfert vers des annotations. Hors ce qui était simple avec le mapping semble galère avec les annotations. Toutes mes classes étendent AbstractID qui contient notemment le ID et ses accesseurs. Cette classe abstraite n'est PAS une entité hibernate. Seuls ses enfants en sont. Chaque enfant mappe cet id sur une colone différente de sa propre table. Exemple la class Fonction qui hérite de AbstractId mappe le id sur FCT_ID dans la table FUNCTIONS, la classe utilisateur qui hérite aussi de AbstractId mappe le id sur USER_ID, dans la table USERS.

    En terme de hbm.xml, rien de plus facile à écrire, on fait simplement un mapping complet par classe concrète et basta.

    Comment écrire cette info en annotation. Tous les exemples que j'ai décrivent le Id devant sont accesseur, hors je dois ici mettre l'annotation dans la sous classe, là où il n'y a pas d'accesseur écrit (et pour cause, ils sont hérités). Vais-je devoir repasser sur toutes mes classe pour supprimer cet abstract? Ou existe-t-il un moyen de mentionner des annotations sans pour autant les mettre devant un accesseur ou une propriété (par exemple les mettre devant la classe en disant "c'est valable pour la propriété "id" çà)?
    @MappedSuperclass

    http://java.sun.com/javaee/5/docs/ap...uperclass.html

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    effectivement, MappedSuperClass combiné à @AttributeOverride devrait me sortir d'affaire. Merci

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

Discussions similaires

  1. mapping hibernate annotations avec classe association
    Par amadoulamine1 dans le forum Hibernate
    Réponses: 0
    Dernier message: 07/06/2011, 20h27
  2. Réponses: 7
    Dernier message: 07/12/2009, 22h49
  3. Mapping Hibernate : <composite-id>
    Par tome tome dans le forum Hibernate
    Réponses: 6
    Dernier message: 10/11/2009, 14h18
  4. mettre a jour le fichier de mapping hibernate
    Par solawe dans le forum Hibernate
    Réponses: 3
    Dernier message: 13/12/2006, 21h14
  5. mapping hibernate
    Par enimiste dans le forum Hibernate
    Réponses: 11
    Dernier message: 16/05/2006, 11h20

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