Comment appeler une Requête Nommée
J'ai écrit une requête nommée dans la classe d'entité Électeur
NamedQuery(name = "Voter.findvoter", query = "SELECT count(*) FROM Voter v WHERE v.voterID = :voterID" and where v.password= : password),
Je tiens à appeler cette requête nommée et j'ai aussi besoin de définir voterID et mot de passe.
Pouvez-vous m'aider. Merci
Vous devez vous connecter pour publier un commentaire.
Je suppose que vous avez raté le symbole @ dans votre NamedQuery annotation?
Dans le code, vous souhaitez appeler comme ceci:
Il y a deux problèmes évidents avec votre requête nommée qui serait la cause d'un problèmes:
@NamedQuery
pas seulementNamedQuery
query = "SELECT count(*) FROM Voter v WHERE v.voterID = :voterID" and where v.password= : password
.Le problème, c'est que vous résiliez votre Chaîne après
:voterID
, au lieu de l'après:password
et vous avez "où" deux fois et vous avez un espace entre ":" et "mot de passe". Votre requête devrait ressembler à ceci:query = "SELECT count(*) FROM Voter v WHERE v.voterID = :voterID and v.password= :password"
(J'ai juste déplacé le " à la fin et supprimé de la seconde "où", et de l'espace après le ":")
Étapes communes sont (du nom de la requête ou autre)
avec les trois étapes ci-dessus, vous pouvez exécuter n'importe quelle APP de la requête.
Fait brent est à droite de votre NameQuery doit être quelque chose comme cela,
et d'autre part, vous devriez essayer celui-ci (qui Dick a déjà dit)
ensuite, vous pouvez l'utiliser comme
devrait vraiment travailler.(c'est un code non compilé).
vous pouvez aussi le faire avec le Repository, consultez le lien ci-dessous, le cadre Référentiel Listing23.Exemple de référentiel
entrez description du lien ici