Methode zum Aufrufen einer gespeicherten SQL-Prozedur: Verwenden Sie CreateNativeQuery
P粉064448449
P粉064448449 2023-09-02 00:10:01
0
1
453

Meine gespeicherte SQL-Prozedur enthält zwei Abfragen und ich möchte die gespeicherte Prozedur aus meinem Java-Code aufrufen. Ich habe den folgenden Code ausprobiert, aber er gibt nur die Ergebnisliste der ersten Abfrage in der gespeicherten Prozedur zurück.

Query query = em.createNativeQuery("{call VoucherRedemption(?,?,?)}"); query.setParameter(1, loginWorkSpaceId); query.setParameter(2, startDate); query.setParameter(3, endDate); List results = query.getResultList();

Die gespeicherte Prozedur lautet wie folgt:

CREATE PROCEDURE `cer`.`voucherRedemption`(IN workspaceId int(10), IN startDate VARCHAR(30), IN endDate VARCHAR(30)) BEGINNEN Wählen Sie w.ws_name als wsName,str_to_date(startDate, '%Y-%m-%d') als startDate,str_to_date(endDate, '%Y-%m-%d') als endDate aus from workspace w where w.ws_id = workspaceId; Wählen Sie Money.*,Money.paidAmount + Money.PrepaidAmount - Money.ClientCost,Programs.Programs from program; END

P粉064448449
P粉064448449

Antworte allen (1)
P粉124070451

我建议像这样使用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 results = query.getResultList();

我还没有使用它来获取实际结果,只是执行了一个过程。如果这个方法有效,请告诉我。

    Neueste Downloads
    Mehr>
    Web-Effekte
    Quellcode der Website
    Website-Materialien
    Frontend-Vorlage
    Über uns Haftungsausschluss Sitemap
    Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!