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

Persistance des données Java Discussion :

[JPox] NullPointerException aprés un SELECT


Sujet :

Persistance des données Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2004
    Messages : 190
    Par défaut [JPox] NullPointerException aprés un SELECT
    Salut à tous,

    Je suis en train d'apprendre le maniement de JPox (pas facile).
    J'ai pris au départ une classe simple avec juste une clé primaire comme difficulté, la voici (classe Outil):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    package Capitalisation.dossier;
     
    public class Outil {
    	private String id_outil;
    	private String nom;
    	private String id_technologie;
     
           ...
    }
    Voici le fichier jdo correspondant:
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE jdo PUBLIC
        "-//Sun Microsystems, Inc.//DTD Java Data Objects Metadata 2.0//EN"
        "http://java.sun.com/dtd/jdo_2_0.dtd">
    <jdo>
        <package name="Capitalisation.dossier">
            <class
            	  identity-type="application"
                  name="Outil"
                  objectid-class="Capitalisation.dossier.OutilIdKey">
                <field
                      name="id_outil"
                      primary-key="true">
                      <column
                         name="id_outil"/>
                </field>
                <field
                      name="nom"
                      null-value="none"
                      primary-key="false"
                      persistence-modifier="persistent">
                   <column
                         length="45"
                         jdbc-type="VARCHAR"/>
                </field>
                <field
                      name="id_technologie"
                      null-value="none"
                      primary-key="false"
                      persistence-modifier="persistent">
                   <column jdbc-type="INTEGER"/>
                </field>
                <query name="selectAll_sql" language="javax.jdo.query.SQL"><![CDATA[
                    SELECT * FROM outil where id_outil = ? ]]></query>
           <query name="selectAll_jdosql" language="javax.jdo.query.JDOQL"><![CDATA[
                    SELECT FROM Capitalisation.dossier.Outil ]]></query>
            </class>
     
        </package>
    </jdo>
    J'ai réalisé plusieurs insertions avec succées mais lorsque je veux faire un select j'obtient cette erreur:
    Exception in thread "main" java.lang.NullPointerException
    at org.jpox.store.rdbms.table.ClassTable.getFieldMapping(ClassTable.java:1541)
    at org.jpox.store.rdbms.table.ClassTable.getFieldMapping(ClassTable.java:1583)
    at org.jpox.store.expression.TableExpression.newFieldExpression(TableExpression.java:111)
    at org.jpox.store.query.JDOQLQuery$Compiler.compileIdentifier(JDOQLQuery.java:1483)
    at org.jpox.store.query.JDOQLQuery$Compiler.compilePrimary(JDOQLQuery.java:1267)
    at org.jpox.store.query.JDOQLQuery$Compiler.compileUnaryExpressionNotPlusMinus(JDOQLQuery.java:1213)
    at org.jpox.store.query.JDOQLQuery$Compiler.compileUnaryExpression(JDOQLQuery.java:1194)
    at org.jpox.store.query.JDOQLQuery$Compiler.compileMultiplicativeExpression(JDOQLQuery.java:1147)
    at org.jpox.store.query.JDOQLQuery$Compiler.compileAdditiveExpression(JDOQLQuery.java:1124)
    at org.jpox.store.query.JDOQLQuery$Compiler.compileRelationalExpression(JDOQLQuery.java:1093)
    at org.jpox.store.query.JDOQLQuery$Compiler.compileEqualityExpression(JDOQLQuery.java:1070)
    at org.jpox.store.query.JDOQLQuery$Compiler.compileAndExpression(JDOQLQuery.java:1058)
    at org.jpox.store.query.JDOQLQuery$Compiler.compileExclusiveOrExpression(JDOQLQuery.java:1046)
    at org.jpox.store.query.JDOQLQuery$Compiler.compileInclusiveOrExpression(JDOQLQuery.java:1034)
    at org.jpox.store.query.JDOQLQuery$Compiler.compileConditionalAndExpression(JDOQLQuery.java:1022)
    at org.jpox.store.query.JDOQLQuery$Compiler.compileConditionalOrExpression(JDOQLQuery.java:1004)
    at org.jpox.store.query.JDOQLQuery$Compiler.compileExpression(JDOQLQuery.java:981)
    at org.jpox.store.query.JDOQLQuery$Compiler.compileQueryStatement(JDOQLQuery.java:859)
    at org.jpox.store.query.JDOQLQuery.compile(JDOQLQuery.java:597)
    at org.jpox.store.query.JDOQLQuery.performExecute(JDOQLQuery.java:654)
    at org.jpox.store.query.Query.executeWithMap(Query.java:868)
    at org.jpox.store.query.Query.executeWithArray(Query.java:848)
    at org.jpox.store.query.Query.execute(Query.java:780)
    at Capitalisation.dossier.sql.OutilTx.selectAll(OutilTx.java:44)
    at Capitalisation.test.MainTest.main(MainTest.java:43)
    Voici donc l'instruction ou je fais mon select:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    public Collection selectAll(){
    		tx.begin();
     
    	    Query q = pm.newQuery(Outil.class, "select * from outil");
    	    //Query q = pm.newNamedQuery(Outil.class, "selectAll_jdosql");
     
    	    Collection c = (Collection)q.execute(); //ICI NULL POINTER EXCEPTION
    	    afficher(c);
    	    tx.commit();
    		return c;
    	}
    Voilà, voyez vous pkoi j'obtient cette erreur?! Comme si le select ne renvoyait rien. Pourtant j'ai regardé dans les logs, et le select se fait bien et je n'ai pas d'SQL exception.

  2. #2
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Collection c = (Collection)q.execute();
    Je pense, et ce n'est qu'une supposition, que ta requête te retourne une valeur nulle.

    A la place du (*) essaie de récupérer un champ à la fois. et test ton résultat avec WasNull().

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2004
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Avril 2004
    Messages : 190
    Par défaut
    Citation Envoyé par jmeclipse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Collection c = (Collection)q.execute();
    Je pense, et ce n'est qu'une supposition, que ta requête te retourne une valeur nulle.

    A la place du (*) essaie de récupérer un champ à la fois. et test ton résultat avec WasNull().
    Je viens d'essayer en changeant ma requete mais même erreur et quand je veux tester si Query q est null, je n'ai pas la fonction WasNull().
    J'ai essayé avec equals(null) et, si ca marche bien, q n'est pas null.

  4. #4
    Membre averti
    Inscrit en
    Mars 2005
    Messages
    30
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 30
    Par défaut reponse
    perso j'ai déjà eu cette erreur mais celle ci était liée à un retour null.

    Bon les gars faut l'aider là !

Discussions similaires

  1. Modification d'un textarea d'après un select
    Par Vilfago dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 07/12/2006, 17h27
  2. Remplir un formulaire après la selection dans un combobox
    Par creale10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/09/2006, 10h51
  3. Réponses: 6
    Dernier message: 11/09/2006, 00h34
  4. afficher une liste deroulante après une selection
    Par zana74 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 04/08/2006, 17h18
  5. [JPox] NullPointerException ou pas !
    Par MinsK dans le forum Persistance des données
    Réponses: 1
    Dernier message: 12/07/2005, 16h33

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