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

Java EE Discussion :

An exception occured while creating a query in EntityManager


Sujet :

Java EE

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    502
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 502
    Points : 227
    Points
    227
    Par défaut An exception occured while creating a query in EntityManager
    bonjour,

    j'ai quelque petites question sur les ejb3 j'ai crée deux bean ayant une relation
    oneToMany

    et je n'arrive pas a crée une requete en ejb-ql : me donner tous les lots par un id de fichier.


    voici mon premier code :

    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
    @Entity
    public class EnteFiPersistance implements Serializable {
     
        @OneToMany(mappedBy = "entetefichier")
        private List<EnteLotPersistance> enteLotPersistances;
     
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private Long id;
     
        /** Creates a new instance of EnteFiPersistance */
     
         private String brandId;
         private String nomFichier;
        private String horodatageDate;
        private String horodatageHeure;  
        private String numeroSequentielFichier;
    1) que signifie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     (mappedBy = "entetefichier")

    second code :
    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
    26
    27
    @Entity
    public class EnteLotPersistance implements Serializable {
     
        @OneToMany(mappedBy = "entetelot")
        private List<detailTraPersistance> detailTraPersistances;
     
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private Long id;
     
     
        private String typedeTransaction;
        private String typeLot; 
        private String presenceDonneesCartes;
        private String presenceNumeroAutorisation;
     
        private String codeNumeriqueMonnaie;
     
        private String identifiantAccepteurCarte;
     
     
        private String identifiantTerminalAccepteurCarte;
     
     
        @JoinColumn(name="refentetefichier")
        @ManyToOne
        private EnteFiPersistance entetefichier;
    2) que signifie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    JoinColumn(name="refentetefichier")
    3) comment les ejb represente les tables ?


    voici ma requete :
    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
    public static Collection<EnteteLot> getSelectedEnteteLot(int id) throws Exception {
    			EntityManager em = emf.createEntityManager();
    			em.getTransaction().begin();
    			EnteteLot v = null;
    			Collection c = null;
    			try {
    				Query query = em.createQuery("Select entelotpersistance from EnteFiPersistance As entelotpersistance where entelotpersistance.entefipersistance.id="+id);
    				c = query.getResultList();
    				em.getTransaction().commit();
    			} catch (Exception e) {
    				e.printStackTrace();
    				em.getTransaction().rollback();
    				throw new Exception("Impossible d'obtenir les informations.");
    			} finally {
    				em.close();
    			}
    			return c;
    		}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Query query = em.createQuery("Select entelotpersistance from EnteFiPersistance As entelotpersistance where entelotpersistance.entefipersistance.id="+id);

    l'erreur lors du deploiment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    java.lang.IllegalArgumentException: An exception occured while creating a query in EntityManager
            at oracle.toplink.essentials.internal.ejb.cmp3.EntityManagerImpl.createQuery(EntityManagerImpl.java:180)
    Caused by: Exception [TOPLINK-8030] (Oracle TopLink Essentials - 2006.8 (Build 060830)): oracle.toplink.essentials.exceptions.EJBQLException
    Exception Description: Unknown state or association field [entefipersistance] of class [com.experian.fichier.persistance.EnteFiPersistance].
            at oracle.toplink.essentials.exceptions.EJBQLException.unknownAttribute(EJBQLException.java:409)
            at oracle.toplink.essentials.internal.parsing.DotNode.validate(DotNode.java:80)

    merci !

  2. #2
    Expert confirmé
    Avatar de Valère
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 334
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2005
    Messages : 1 334
    Points : 4 740
    Points
    4 740
    Par défaut
    Bonjour,

    Le As dans ta Query ne serait-il pas en trop?

    Valère
    Pensez au bouton
    Je ne répond pas aux questions techniques par email ou MP.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    502
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 502
    Points : 227
    Points
    227
    Par défaut
    merci mais ça ne fonctionne pas . j'ai toujours l'erreur

    j

    j'ai deux tables de relation OneToMany

    je voudrais a partir un id avoir tous les renseignements de la table

    exemple :

    je suis un client et je possede plusieurs comptes bancaire

    c'est une relation OneToMany

    et je voudrais savoir pour le client 1 (par exemple) avoir tous les comptes lui concernant


    mon code Client :
    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
    @javax.persistence.Entity
    public class Client implements Serializable {
     
        @OneToMany(mappedBy = "client",fetch = FetchType.EAGER, cascade = CascadeType.ALL)
        private List<Compte> comptes;
     
     
     
        @javax.persistence.Id
        @javax.persistence.GeneratedValue(strategy = javax.persistence.GenerationType.AUTO)
        private Long id;
     
        /** Creates a new instance of Client */
        public Client() {
        }
     
        public Client (String nom, String prenom)
        {
     
        }
        private String nom;
        private String prenom;

    mon code Compte :
    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
    @Entity
    public class Compte implements Serializable {
     
        public Compte() {
        }
     
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)
        private Long id;
     
        /** Creates a new instance of Compte */
        public Compte(String n, Client client) {
           setNumCompte(n);
           setClient(client); 
        }
     
        @JoinTable(name="client_id")
        @ManyToOne
        private Client client;
     
        private String numCompte;
        /**

    voici ma requete :

    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
     public List getCompteByClient(int id) throws Exception
            {
                EntityManager em =(EntityManager) emf.createEntityManager();
                em.getTransaction().begin();
                List c =null;
                try{
                    javax.persistence.Query query =em.createQuery("select d From Compte d where d.client.id="+id);
                    c=  query.getResultList();
                    em.getTransaction().commit();
                }catch(Exception e){
                    e.printStackTrace();
                    em.getTransaction().rollback();
     
                }finally{
                em.close();
                }
                return c;
                }
    erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Exception in thread "main" java.lang.NullPointerException
            at ejbexample.Main.main(Main.java:72)
    Java Result: 1
    comme si il y a pas de lien entre le numero du client et des comptes

    merci !

  4. #4
    Membre habitué Avatar de sofien
    Inscrit en
    Février 2005
    Messages
    325
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Février 2005
    Messages : 325
    Points : 127
    Points
    127
    Par défaut
    Bonjour, est ce que t'as vérifié la persistance des données dans ta base par exemple?
    La vie n'est qu'une suite de tests...(pas unitaires )

Discussions similaires

  1. [2.x] An exception occurred while executing 'INSERT INTO
    Par timal78 dans le forum Symfony
    Réponses: 10
    Dernier message: 21/02/2014, 10h37
  2. Réponses: 0
    Dernier message: 06/01/2010, 22h05
  3. Réponses: 6
    Dernier message: 30/06/2009, 18h15
  4. [Axis2] Exception occurred while trying to invoke service method
    Par wifsimster dans le forum Services Web
    Réponses: 3
    Dernier message: 06/06/2009, 20h03
  5. Réponses: 3
    Dernier message: 05/08/2008, 15h24

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