Spring 어플리케이션에서 저장 프로 시저를 실행하기 위해 최대 절전 모드 JPA를 사용하고 있지만 아래 오류가 발생합니다. StoredPrcoedure에는 매개 변수가 없으므로 아래의 오류는 직관적이지 않습니다. 이 문제를 해결 한 모든 Google 검색 결과는 없었고 봄/겨울 절기 문서에 대한 언급도 도움이되지 않았습니다. 이 문제에 대한 도움은 크게 감사하겠습니다. 내가 수정할 수 없습니다Spring JPA를 사용한 StoredProcedure 호출이 오류가 발생했습니다.
@Entity
@NamedStoredProcedureQuery(name = "getCountries", procedureName = "spLT_Countries", resultClasses = Country.class)
public class Country implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "countryid")
private Long id;
@Column(name = "ISOCountrycode")
private String iso2;
@Column(name="Country")
private String name;
:
:
}
MS SQL Server의
저장 프로 시저, 기존 : 나는
다음과 같이Error:
org.hibernate.procedure.NoSuchParameterException: Could not locate parameter registered using that position [1] at org.hibernate.procedure.internal.ProcedureCallImpl.getParameterRegistration(ProcedureCallImpl.java:338) at org.hibernate.procedure.internal.ProcedureOutputsImpl.getOutputParameterValue(ProcedureOutputsImpl.java:68) at org.hibernate.jpa.internal.StoredProcedureQueryImpl.getOutputParameterValue(StoredProcedureQueryImpl.java:276)
Entity 클래스 .. 내가 잘못이 시점에서 완전히 붙어있는 중이 야 이해할 수없는 것 .
내가 더 발전 할 방법이 없기 때문에 도움을 주시면 대단히 감사하겠습니다. 당신은 country
클래스에서 불필요한 주석을 제거해야 할 수 있습니다
javax.persistence.Query query=em.createNativeQuery("exec getCountries");
List<country> results = query.getResultList();
:
어떻게 저장 프로 시저를 호출합니까? – zeroflagL
프로 시저를 호출하는 JPA 주석 - @NamedStoredProcedureQuery (name = "getCountries", procedureName = "spLT_Countries", resultClasses = Country.class)를 사용하고 있는데, 매개 변수 매핑에 실패합니다. – slad
'@ NamedStoredProcedureQuery'는 쿼리를 선언하기 만합니다. 그것은 그것을 호출하지 않습니다. – zeroflagL