Kaedah untuk memanggil prosedur tersimpan SQL: gunakan CreateNativeQuery
P粉064448449
2023-09-02 00:10:01
<p>Prosedur tersimpan SQL saya mengandungi dua pertanyaan dan saya mahu memanggil prosedur tersimpan daripada kod Java saya.
Saya mencuba kod di bawah tetapi ia hanya mengembalikan senarai hasil pertanyaan pertama dalam prosedur tersimpan. </p>
<pre class="brush:php;toolbar:false;">Query query = em.createNativeQuery("{call voucherRedemption(?,?,?)}");
query.setParameter(1, log masukWorkSpaceId);
query.setParameter(2, startDate);
query.setParameter(3, endDate);
Senaraikan<Objek[]> hasil = query.getResultList();</pre>
<p>Prosedur yang disimpan adalah seperti berikut:</p>
<pre class="brush:php;toolbar:false;">BUAT PROSEDUR `cer`.`VoucherRedemption`(IN workspaceId int(10), IN startDate VARCHAR(30),
DALAM tarikh akhir VARCHAR(30))
BERMULA
pilih w.ws_name sebagai wsName,str_to_date(startDate, '%Y-%m-%d') sebagai startDate,str_to_date(endDate, '%Y-%m-%d') sebagai endDate
dari ruang kerja w di mana w.ws_id = workspaceId;
pilih wang.*,money.paidAmount + money.prepaidAmount - money.clientCost,programs.programs
daripada program; END</pre></p>
Saya syorkan menggunakannya seperti ini
EntityManager#createStoredProcedureQuery
:Saya tidak menggunakannya untuk mendapatkan hasil sebenar, hanya melakukan satu proses. Jika ini berkesan, sila beritahu saya.