Kaedah untuk memanggil prosedur tersimpan SQL: gunakan CreateNativeQuery
P粉064448449
P粉064448449 2023-09-02 00:10:01
0
1
607
<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>
P粉064448449
P粉064448449

membalas semua(1)
P粉124070451

Saya syorkan menggunakannya seperti ini 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();

Saya tidak menggunakannya untuk mendapatkan hasil sebenar, hanya melakukan satu proses. Jika ini berkesan, sila beritahu saya.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan