В сети есть много примеров, которые описывают, как вызывать хранимую процедуру с помощью Hibernate, однако при использовании Spring картина немного меняется.
У меня есть хранимая процедура в MySQL, которую яхочу позвонить: в SQL мне нужно написать следующее:
CALL inrange(32.342324,32.234234);
It returns a row with the following: `{INT},{INT},{FLOAT}`
В Spring я использую HibernateTemplate
способ выполнения операций гибернации, я знаю, что некоторым из вас это не понравится, ноэто то, как был проект, когда я начинал, и я не очень хочу его менять, возможно, в будущем ...
В настоящее время у меня есть следующий код на Java, который пытается вызвать процедуру:
List<Object[]> resultset = hibernateTemplate
.findByNamedQuery("inrange",
person.getAddress().getLatitude(),
person.getAddress().getLongitude());
Когда я его запускаю, я получаю следующее исключение Hibernate:
org.springframework.orm.hibernate3.HibernateSystemException:
Named query not known: inrange;
Я понял, что это происходит из-за того, что я не объявил хранимую процедуру вспящий режим.Мой вопрос:
- как мне это объявить?
- Есть ли специальный способ объявить его в файле контекста приложения Spring?