Et dans l’affirmative, dans quelles circonstances ?
Javadoc et JPA spec ne dit rien.
Et dans l’affirmative, dans quelles circonstances ?
Javadoc et JPA spec ne dit rien.
Tu as raison. Spécification JPA ne dit rien à ce sujet. Mais Java persistance avec Hibernate, 2e édition, dit :
Si le résultat de la requête est vide, une valeur null est retournée
Mise en veille prolongée de retour null JPA mise en œuvre (entité gestionnaire) lorsque vous appelez query.getResultList() sans résultat.
MISE À JOUR
Comme souligné par certains utilisateurs, il semble qu’une nouvelle version d’Hibernate retourne une liste vide à la place.
Si les spécifications dit qu'il n'arrive pas, auriez-vous confiance en eux? Étant donné que votre code pourrait exécuter sur différentes implémentations JPA, feriez-vous confiance à chaque maître d'œuvre pour l'obtenir?
N'importe quoi, je code avec précaution et vérifier la valeur null.
Maintenant la grande question: devrions-nous traiter de "nul" et une Liste vide comme un synonyme? C'est là que les spécifications devraient nous aider, et ne pas.
Ma conjecture est qu'un retour null (si, effectivement, il pourrait arriver) serait l'équivalent de "je n'ai pas compris la requête" et vide de liste serait "oui, a compris la requête, mais il n'y avait pas de dossier".
Peut-être ont un chemin d'accès du code (probablement une exception) qui traite de unparsable requêtes, j'aurais tendance à diriger un retour null en bas de ce chemin.
Contrairement aux postes d’Arthur, quand j’ai couru en fait une requête qui ne correspondait à aucune entité j’ai obtenu une liste vide, non nulle. C’est en utilisant Hibernate et c’est ce que je considère le comportement correct : une liste vide est la bonne réponse lorsque vous demandez une collection d’entités et il n’ya pas tout.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.