Hibernate를 사용하여 저장 프로 시저를 호출하는 방법을 설명하는 예제가 많이 있지만, Spring을 사용할 때 그림이 약간 변경됩니다.Hibernate와 Spring을 사용하여 저장 프로 시저 호출하기
내가 전화를 걸 MySQL은 저장 프로 시저를 가지고 : SQL에서 나는 다음과 같은 작성해야 :
스프링CALL inrange(32.342324,32.234234);
It returns a row with the following: `{INT},{INT},{FLOAT}`
, 나는 최대 절전 모드 작업을 실행하는 HibernateTemplate
방법을 사용하여, 나는 알고 여러분 중 일부는 그것을 좋아하지 않을 것입니다. 그러나 이것은 제가 시작했을 때 프로젝트가 어떻게 이루어 졌는지, 그리고 아마도 미래에 아마도 그렇게 바뀌지는 않을 것입니다 ...
현재 다음 코드가 있습니다. 프로 시저를 호출하려고 시도하는 Java :
내가 그것을 실행하면List<Object[]> resultset = hibernateTemplate
.findByNamedQuery("inrange",
person.getAddress().getLatitude(),
person.getAddress().getLongitude());
, 나는 다음과 같은 최대 절전 모드 예외가 :
org.springframework.orm.hibernate3.HibernateSystemException:
Named query not known: inrange;
나는 이것이 내가 최대 절전 모드에서 저장 프로 시저를 선언하지 않은 사실 듀오 일어나고 있다고 생각. 내 질문 :
- 신고 방법은 무엇입니까?
- Spring의 응용 프로그램 컨텍스트 파일에서이를 선언하는 특별한 방법이 있습니까?
Hibernatepatial은 매우 멋지지만 mySQL을 사용하고 있습니다. 기능의 대부분은 해당 DB, 특히 거리 함수에서 지원되지 않습니다. – stdcall
실제로 각 DB는 고유 한 기능/기능을 제공하며 아마도이 프로젝트에 기여하여 MySQL에서도 작동합니다. 행운을 빕니다 –