SQL 저장 프로시저 호출 방법: CreateNativeQuery 사용
P粉064448449
2023-09-02 00:10:01
<p>내 SQL 저장 프로시저에는 두 개의 쿼리가 포함되어 있으며 Java 코드에서 저장 프로시저를 호출하고 싶습니다.
아래 코드를 시도했지만 저장 프로시저의 첫 번째 쿼리 결과 목록만 반환했습니다. </p>
<pre class="brush:php;toolbar:false;">Query query = em.createNativeQuery("{call 바우처Redemption(?,?,?)}");
query.setParameter(1,logininWorkSpaceId);
query.setParameter(2, startDate);
query.setParameter(3, endDate);
List<Object[]> 결과 = query.getResultList();</pre>
<p>저장 프로시저는 다음과 같습니다.</p>
<pre class="brush:php;toolbar:false;">CREATE PROCEDURE `cer`.`voucherRedemption`(IN 작업 공간 ID 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.ws_id = 작업 공간 ID인 작업 공간 w에서;
Money.*,money.paidAmount + Money.prepaidAmount - Money.clientCost,programs.programs를 선택합니다.
프로그램에서 END</pre></p>
이렇게 사용하는 것이 좋습니다
으아악EntityManager#createStoredProcedureQuery
:실제 결과를 얻기 위해 사용한 것이 아니라 프로세스를 수행했을 뿐입니다. 이것이 효과가 있다면 알려주세요.