Comment appeler une procédure stockée depuis Hibernate avec les paramètres IN et OUT
Je veux appeler une Procédure Stockée de mise en veille prolongée qui retourne une valeur. Voici ma Procédure Stockée.
create procedure myProcedure
(
in in_Id int,
out out_Id int
)
begin
...
END;
J'essaye ceci pour appeler ma procédure
Query query = session.createSQLQuery(
"CALL myProcedure(:in_Id)")
.setParameter("in_id", 123);
//Not sure how to register out parameters...??
List result = query.list();
J'ai tout essayé mais pas de chance. Pouvez-vous m'aider s'il vous plaît?
Si j'essaie de le ci-dessus, il dit:
Nombre Incorrect d'arguments en faveur de PROCÉDURE maprocédure; attendu 2, a obtenu 1
J'ai essayé d'ajouter un paramètre de sortie comme
myProcedure(:out_id:in_Id)
mais ensuite, il dit
Pas tous les noms de paramètres ont été définis:
Je ne sais pas comment sortir paramètre sera réglé? Est-ce comme le suivant?
.setParameter("out_id", ?);
Toute aide est très appréciée 🙂
source d'informationauteur Waseem Khan
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple de le faire est de retour le paramètre de sortie dans le cadre de la restitution des paramètres
(seulement si vous avez accès aux procédures de la banque).
plaisanterie ajouter un magasin de procédure comme le suivant
après le fait que c'est assez simple à utiliser avec Hibernet de la façon suivante
Le résultat contient le paramètre de sortie,
si vous voulez un retour multiplier les paramètres, vous pouvez l'ajouter en faire
sélectionnez @parm1,@parm2,... ,@parmn
Espérons qu'il a aidé
J'ai écrit un article détaillé sur comment vous pouvez appeler MySQL procédures stockées et les fonctions de base de données de mise en veille prolongéemais je vais écrire un bref résumé ici.
Vu que vous avez une simple procédure stockée qui renvoie un type de base:
Vous pouvez appeler cette procédure stockée à l'aide d'une JPA
StoredProcedureQuery
:Consultez l'exemple ci-dessus
ResultSet rs1=null;