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 :

Mapping avec JPA


Sujet :

JPA Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 4
    Par défaut Mapping avec JPA
    Bonjour

    J'ai un soucis de mapping avec JPA:

    En base de données (oracle) j'ai deux tables:
    INVITE

    NUMINVITE de type long (primary Key)
    CONFIRME de type VARCHAR

    HISTOINVITE
    NUMHISTOINVITE de type long (primary Key)
    DATEHISTO de type DATE
    La table HISTOINVITE permet de tracer l'historique des saisies sur l'nvitation.


    J'ai mappé ces deux tables à l'aide de de JPA2

    Deux classes donc:
    InviteBO
    ======
    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
    @Entity
    @Table(name="INVITE")
     
    public class InviteBO  implements Serializable {
     
     
    	@Id
    	@Column(name="NUMINVITE")
    	private long numInvite;
     
     
     
    	@OneToMany(mappedBy="invite")
    	private List<HistoinviteBO> histoinvites;
     
     
    	...
     
    }
    HistoinviteBO
    ==========
    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
    @Entity
    @Table(name = "HISTOINVITE")
    public class HistoinviteBO implements Serializable {
     
    	@Id
    	@Column(name="NUMINVITEHISTO")
    	private long numInviteHisto;
     
    	@ManyToOne
    	@JoinColumn(name="NUMINVITE")
    	private InviteBO invite;
     
     
    	...
    }
    Le problème vient du champ histoinvites:

    Quand je démarre le serveur (weblogic) j'ai le message suivant:
    Caused By: Exception [EclipseLink-7250] (Eclipse Persistence Services - 2.3.0.v20110604-r9504):

    org.eclipse.persistence.exceptions.ValidationException
    Exception Description: [class InviteBO] uses a non-entity [ThistoinviteBO] as target entity in the relationship attribute [field histoinvites].
    Si j’enlève le champ histoinvites de InviteBO je n'ai pas de message d'erreur au démarrage et j'arrive à faire des selects sur les deux entités (histoinviteBO et InviteBO).

    Merci par avance pour votre aide.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Par défaut
    Bonjour,

    Tu n'as pas un fichier de configuration (persitence.xml probablement) dans lequel tu dois lister l'ensemble de tes entités ? Tu n'aurais pas un faute de frappe dedans ou oublier de lister une de tes entités ?

    Est ce que tu as bien utilisé les import javax.persistence.* pour tes annotations @Entity et @Table ?

    Romain.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 4
    Par défaut
    Citation Envoyé par rg77140 Voir le message
    Bonjour,

    Tu n'as pas un fichier de configuration (persitence.xml probablement) dans lequel tu dois lister l'ensemble de tes entités ? Tu n'aurais pas un faute de frappe dedans ou oublier de lister une de tes entités ?

    Est ce que tu as bien utilisé les import javax.persistence.* pour tes annotations @Entity et @Table ?

    Romain.

    J'ai vérifié c'est bon:
    j'ai les classes dans le persitence.xml et les import dans les classes sont bon.
    De toute façon j'arrive à faire des selects sur les deux classes sans le mapping

    @OneToMany(mappedBy="invite")
    private List<HistoinviteBO> histoinvites;

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 394
    Par défaut
    Est ce que ça correspond à toute ta base de données ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    INVITE
    NUMINVITE de type long (primary Key)
    CONFIRME de type VARCHAR
     
    HISTOINVITE
    NUMHISTOINVITE de type long (primary Key)
    DATEHISTO de type DATE
    Si oui il manque un champ dans HISTOINVITE. Il te faut un champ de type long pour stocker le NUMINVITE associé à ton HISTOINVITE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    INVITE
    NUMINVITE de type long (primary Key)
    CONFIRME de type VARCHAR
     
    HISTOINVITE
    NUMHISTOINVITE de type long (primary Key)
    DATEHISTO de type DATE
    NUMINVITE de type long (foreign Key)
    Romain.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2013
    Messages : 4
    Par défaut
    Citation Envoyé par rg77140 Voir le message
    Est ce que ça correspond à toute ta base de données ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    INVITE
    NUMINVITE de type long (primary Key)
    CONFIRME de type VARCHAR
     
    HISTOINVITE
    NUMHISTOINVITE de type long (primary Key)
    DATEHISTO de type DATE
    Si oui il manque un champ dans HISTOINVITE. Il te faut un champ de type long pour stocker le NUMINVITE associé à ton HISTOINVITE :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    INVITE
    NUMINVITE de type long (primary Key)
    CONFIRME de type VARCHAR
     
    HISTOINVITE
    NUMHISTOINVITE de type long (primary Key)
    DATEHISTO de type DATE
    NUMINVITE de type long (foreign Key)
    Romain.
    Milles excuses. Je l'ai oublié dans le post initial. Dans HISTOINVITE il ya bien sûr un NUMINVITE.

    Cordialement

  6. #6
    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
    Lors de la précision dans join colum la référence dans les deux sens peut être important pour ne pas créer la table de jointure.
    donc change un peu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @ManyToOne
    	@JoinColumn(name="NUMINVITE")
    	private InviteBO invite;
    et mets plutot ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @ManyToOne
    	@JoinColumn(name="NUMINVITE",referencedColumnName="NUMINVITE")
    	private InviteBO invite;

Discussions similaires

  1. Mapping Objet-Relationel avec JPA :héritage
    Par ahmeddrira dans le forum Frameworks Web
    Réponses: 3
    Dernier message: 06/03/2012, 17h12
  2. Mapper Une Map avec JPA
    Par yashiro dans le forum JPA
    Réponses: 0
    Dernier message: 23/12/2009, 18h40
  3. [hibernate] Mapping avec identifiant composé
    Par miky_jo dans le forum Hibernate
    Réponses: 3
    Dernier message: 11/10/2005, 16h48
  4. [KODO]mapping avec JDO
    Par ksavieras dans le forum Persistance des données
    Réponses: 3
    Dernier message: 21/09/2005, 20h41
  5. [Struts][Tiles] Probleme d'action mapping avec un dynaform
    Par bluefox_du_974 dans le forum Struts 1
    Réponses: 3
    Dernier message: 28/03/2005, 22h47

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