SQLストアドプロシージャを呼び出す方法:CreateNativeQueryを使用
P粉064448449
2023-09-02 00:10:01
<p>SQL ストアド プロシージャには 2 つのクエリが含まれており、Java コードからストアド プロシージャを呼び出したいと考えています。
以下のコードを試しましたが、ストアド プロシージャの最初のクエリの結果リストのみが返されます。 </p>
<pre class="brush:php;toolbar:false;">Query query = em.createNativeQuery("{call voteRedemption(?,?,?)}");
query.setParameter(1, loggedinWorkSpaceId);
query.setParameter(2, startDate);
query.setParameter(3, endDate);
List<Object[]> results = query.getResultList();</pre>
<p>ストアド プロシージャは次のとおりです。</p>
<pre class="brush:php;toolbar:false;">CREATE PROCEDURE `cer`.`voucherRedemption`(IN workspaceId int(10), IN startDate VARCHAR(30),
IN endDate VARCHAR(30))
始める
w.ws_name を wsName として選択、str_to_date(startDate, '%Y-%m-%d') を startDate として、str_to_date(endDate, '%Y-%m-%d') を endDate として選択
ワークスペース w から w.ws_id = workspaceId;
選択money.*,money.paidAmountmoney.prepaidAmount -money.clientCost,programs.programs
プログラムから; END</pre></p>
EntityManager#createStoredProcedureQuery
を次のように使用することをお勧めします:実際の結果を得るために使用したわけではなく、プロセスを実行しただけです。これがうまくいったら、私に知らせてください。