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

Frameworks Web Java Discussion :

Erreur avec JPA


Sujet :

Frameworks Web Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2012
    Messages : 23
    Points : 26
    Points
    26
    Par défaut Erreur avec JPA
    Bonjour,

    Je débute avec JPA et je n'arrive pas à résoudre l'erreur suivante :
    Apparemment, "Customer" et "Address" ne sont pas référencés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Exception in thread "main" Local Exception Stack: 
    Exception [EclipseLink-30005] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.PersistenceUnitLoadingException
    Exception Description: An exception was thrown while searching for persistence archives with ClassLoader: sun.misc.Launcher$AppClassLoader@22a316ad
    Internal Exception: javax.persistence.PersistenceException: Exception [EclipseLink-28018] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.EntityManagerSetupException
    Exception Description: Predeployment of PersistenceUnit [bankPersistenceUnit] failed.
    Internal Exception: Exception [EclipseLink-7250] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.ValidationException
    Exception Description: [class ch.hearc.ig.bank.business.Bank] uses a non-entity [class ch.hearc.ig.bank.business.Customer] as target entity in the relationship attribute [field customers].
    	at org.eclipse.persistence.exceptions.PersistenceUnitLoadingException.exceptionSearchingForPersistenceResources(PersistenceUnitLoadingException.java:127)
    	at org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:115)
    	at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
    	at javax.persistence.Persistence.createEntityManagerFactory(Unknown Source)
    	at ch.hearc.ig.bank.service.JpaBank.researchAddress(JpaBank.java:23)
    	at ch.hearc.ig.bank.application.Application.main(Application.java:22)
    Ma classe bank

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    @Entity
    @Table(name="BANQUE")
    public class Bank implements Serializable{
     
        @Id
        @Column(name="NUMERO")
        private Integer number;
        @Column(name="NOM")
        private String name;
        @ManyToOne
        @JoinColumn(name="ADRESSE_NUMERO")
        private Address address;
        @OneToMany
        private List<Customer> customers;
    Mon fichier xml

    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
    <?xml version="1.0" encoding="UTF-8" ?> 
    <persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence 
    http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" 
    version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"> 
     
    <persistence-unit name="employesPersistenceUnit" transaction-type="RESOURCE_LOCAL"> 
        <class>ch.hearc.ig.bank.business.Customer</class> 
        <properties> 
            privé
        </properties> 
    </persistence-unit>
    <persistence-unit name="addressPersistenceUnit" transaction-type="RESOURCE_LOCAL"> 
        <class>ch.hearc.ig.bank.business.Address</class> 
        <properties> 
            privé
        </properties> 
    </persistence-unit> 
    <persistence-unit name="bankPersistenceUnit" transaction-type="RESOURCE_LOCAL"> 
        <class>ch.hearc.ig.bank.business.Bank</class> 
        <properties> 
            privé
        </properties> 
    </persistence-unit>
    </persistence>
    Pouvez-vous m'aider ? Merci

  2. #2
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Bonjour,

    L'erreur est clairement mentionnée en rouge dans tes traces :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception Description: [class ch.hearc.ig.bank.business.Bank] uses a non-entity [class ch.hearc.ig.bank.business.Customer] as target entity in the relationship attribute [field customers].
    Ton entité Customer n'a pas été mappée avec l'annotation :
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2012
    Messages : 23
    Points : 26
    Points
    26
    Par défaut
    Citation Envoyé par DevServlet Voir le message
    Bonjour,

    Ton entité Customer n'a pas été mappée avec l'annotation :
    J'avais déjà contrôlé ceci. Mais ma classe Customer comporte bien le @Entity.

    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
     
    package ch.hearc.ig.bank.business;
     
    import ch.hearc.ig.bank.exception.AccountNotFoundException;
    import java.io.Serializable;
    import java.util.ArrayList;
    import java.util.List;
    import javax.persistence.*;
     
    @Entity
    @Table(name="BANQUE_CLIENT")
    public class Customer extends Person implements Serializable {
     
        @Id
        @Column(name="NUMERO")
        private Integer number;
        @Column(name="PRENOM")
        private String firstName;
        @Column (name="NOM")
        private String lastName;
        @OneToMany(cascade=CascadeType.ALL)
        private List<Account> accounts;
        @OneToOne
        @Column (name="BANQUE_NUMERO")
        private Bank bank;
    De plus, j'ai le même problème avec Address

    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
     
    package ch.hearc.ig.bank.business;
     
    import java.io.Serializable;
    import javax.persistence.*;
     
    @Entity
    @Table(name="BANQUE_ADRESSE")
    public class Address implements Serializable {
     
     
        @Id
        @Column(name="NUMERO")
        private Integer id;
        @Column(name="RUE")
        private String street;
        @Column(name="NPA")
        private String zipCode;
        @Column(name="VILLE")
        private String city;
    Je n'ai donc toujours pas résolu le problème.

  4. #4
    Membre expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 938
    Points : 3 938
    Points
    3 938
    Par défaut
    Peux tu essayer de déclarer toutes les classes entités dans ton persistence.xml et nous redire? s'il y'en a pas bcp j'espère
    Vous avez peut être hâte de réussir et il n'y a rien de mal à cela...
    mais la patience est aussi une vertu; l'échec vous l'enseignera certainement..."

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2012
    Messages : 23
    Points : 26
    Points
    26
    Par défaut
    J'ai trouvé l'erreur.

    Au début, dans mon fichier persistence.xml, j'ai fait 1 <persistence-unit> par classe, donc 4 classes, 4 <persistence-unit> !

    J'ai corrigé. J'ai mis toutes mes classes dans une seule <persistence-unit> et ça fonctionne tip top ! Merci

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/02/2012, 19h58
  2. Erreur avec procédure LockWorkStation ...
    Par simonseztech dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h33
  3. [Débutant][Conception] Erreur avec une classe interne
    Par Devil Redneck dans le forum Général Java
    Réponses: 5
    Dernier message: 11/06/2004, 15h45
  4. Erreur avec les ADO
    Par megane dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/03/2004, 21h37
  5. Erreur avec WM_COMMAND (BN_CLICKED)
    Par cyberlewis dans le forum Windows
    Réponses: 2
    Dernier message: 09/02/2004, 00h25

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