2010-11-11 71 views
1

Je n'ai encore rien ajouté à ma base de données, donc la requête suivante devrait renvoyer un résultat de par mon compte.Dans quelles situations Query.execute() renvoie null dans DataNucleus

Query query = pm.newQuery(Password.class); 
    query.setFilter("password == :passwordParam"); 
    query.setResult("count(password)"); 
    query.setResultClass(Integer.class); 
    Integer result = (Integer)query.execute(password); 
    System.out.println("Result: [" + result + "]"); 

Il retourne null

Ni les javadocs, ni le résultat docs, dire quoi que ce soit au sujet de cette méthode étant en mesure de retourner null. Je suppose que j'ai fait quelque chose de mal.

http://db.apache.org/jdo/api20/apidocs/javax/jdo/Query.html#execute%28%29 http://www.datanucleus.org/products/accessplatform_2_2/jdo/jdoql_result.html

Répondre

1

Quand j'ai essayé votre code avec DataNucleus j'ai connu un problème similaire au premier.

L'enhancer de code de sécurité n'était pas en cours d'exécution. Une fois que je l'ai activé le compte est devenu 0 a prévu.

Peut-être que vous rencontrez un problème similaire.

+0

Note: J'ai supprimé ma réponse précédente concernant les agrégats et la norme JDO car elle n'était pas vraiment utile de toute façon. –

+0

L'autre info était utile aussi, vous devriez laisser les deux. :) Mais de toute façon, étonnamment, je pense que vous avez raison. L'enhancer fonctionnait à coup sûr, je le vois fonctionner chaque fois que j'enregistre un fichier, mais j'ai fait un projet propre et maintenant j'obtiens le résultat attendu pour le compte ... peut-être qu'il n'a pas amélioré ce fichier et l'a causé de tout faire à nouveau. En tout cas, merci beaucoup! –