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

JPA Java Discussion :

Héritage entre les entity [EclipseLink]


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Par défaut Héritage entre les entity [EclipseLink]
    Bonjour à tous,

    Je développe actuellement une application JPA/Spring (sans EJB) et je suis confronté à un problème assez déconcertant.

    Je dois faire un audit trail sur une table à la manière de Hibernate Envers mais je dois utiliser EclipseLink comme implémentation JPA. J'essaie donc de coder le plus simplement possible un audit fiable.

    J'essaie de créer automatiquement ma table d'audit en faisant hériter mon entity d'audit (A_audit) de mon entity métier (A). Le problème est que EclipseLink ne me créé pas de table supplémentaire mais il met les champs de A_audit dans la table correspondant à l'entity A.

    En rajoutant l'annotation @MappedSuperclass sur mon entity A, même résultat ...

    Des idées?

  2. #2
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Par défaut
    J'ai annoté la classe à auditer (qui s'appelle en réalité Context1) avec @Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)

    mais là, EclipseLink me dit :
    Exception Description: Class [class net.diamis.mph.common.entities.history.Context1History] has two @GeneratedValues: for fields [CONTEXT_1_HISTORY.ID] and [CONTEXT_1_HISTORY.HIST_ID]. Only one is allowed.

    Le champ ID est celui hérité de la classe Context1...

  3. #3
    Membre très actif Avatar de bruneltouopi
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2010
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

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

    Informations forums :
    Inscription : Janvier 2010
    Messages : 308
    Par défaut
    je ne sais pas si cela va t'aider mais voici un exemple simple de l'heritage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    @Entity
    @Inheritance(strategy= InheritanceType.JOINED)
    @Table(name = "personne")
    @DiscriminatorColumn(name="TYPE_ENTITE")
    @DiscriminatorValue("PERSONNE")
     
    public class Personne implements Serializable{
    @Id 
    String maticule;}
    ensuite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    @Entity
    @Table(name = "parent")
    @DiscriminatorValue("PARENT")
    public class Parent extends Personne implements Serializable
    il est à noter que la classe qui hérite ici c'est parent ne contient pas de champ @Id

Discussions similaires

  1. JPA liaison entre les entities ?
    Par jimboo dans le forum JPA
    Réponses: 0
    Dernier message: 16/02/2012, 04h15
  2. Héritage et relation entre les classes filles
    Par h_ayadi dans le forum JPA
    Réponses: 3
    Dernier message: 02/02/2012, 21h02
  3. sur l'héritage entre les acteurs
    Par win_ubuntu dans le forum Cas d'utilisation
    Réponses: 3
    Dernier message: 07/02/2011, 13h06
  4. [MCD] Héritage, association entre les sous-types
    Par Sandro Munda dans le forum Schéma
    Réponses: 31
    Dernier message: 26/01/2011, 16h35
  5. conversion entre les classes et héritage.
    Par deubelte dans le forum C++
    Réponses: 14
    Dernier message: 01/05/2010, 20h53

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