Méthode pour appeler une procédure stockée SQL : utilisez CreateNativeQuery
P粉064448449
P粉064448449 2023-09-02 00:10:01
0
1
603
<p>Ma procédure stockée SQL contient deux requêtes et je souhaite appeler la procédure stockée à partir de mon code Java. J'ai essayé le code ci-dessous mais il renvoie uniquement la liste des résultats de la première requête de la procédure stockée. </p> <pre class="brush:php;toolbar:false;">Query query = em.createNativeQuery("{call voucherRedemption(?,?,?)}"); query.setParameter(1, connectéWorkSpaceId); query.setParameter(2, startDate); query.setParameter(3, endDate); Liste<Object[]> résultats = query.getResultList();</pre> <p>La procédure stockée est la suivante :</p> <pre class="brush:php;toolbar:false;">CRÉER UNE PROCÉDURE `cer`.`voucherRedemption`(IN workspaceId int(10), IN startDate VARCHAR(30), DANS date de fin VARCHAR(30)) COMMENCER sélectionnez w.ws_name comme wsName, str_to_date(startDate, '%Y-%m-%d') comme startDate, str_to_date(endDate, '%Y-%m-%d') comme endDate depuis l'espace de travail w où w.ws_id = workspaceId ; sélectionnez money.*,money.paidAmount + money.prepaidAmount - money.clientCost,programs.programs du programme ; FIN</pre></p>
P粉064448449
P粉064448449

répondre à tous(1)
P粉124070451

Je recommande de l'utiliser comme ceci EntityManager#createStoredProcedureQuery :

StoredProcedureQuery query = em.createStoredProcedureQuery("voucherRedemption");
query.registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN);
query.registerStoredProcedureParameter(2, String.class, ParameterMode.IN);
query.registerStoredProcedureParameter(3, String.class, ParameterMode.IN);
query.setParameter(1, loggedinWorkSpaceId);
query.setParameter(2, startDate);
query.setParameter(3, endDate);
List<Object[]> results = query.getResultList();

Je ne l'ai pas utilisé pour obtenir des résultats réels, j'ai juste effectué un processus. Si cela fonctionne, faites-le-moi savoir.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal