Il existe de nombreux exemples sur le net qui décrivent comment appeler une procédure stockée à l'aide de Hibernate, cependant, lorsque vous utilisez Spring, l'image change un peu.Appel de procédure stockée avec Hibernate et Spring
J'ai une procédure stockée dans MySQL que je veux appeler: dans SQL je besoin d'écrire ce qui suit:
CALL inrange(32.342324,32.234234);
It returns a row with the following: `{INT},{INT},{FLOAT}`
Avec le printemps, j'utilise la manière HibernateTemplate
d'exécuter les opérations de mise en veille prolongée, je sais que certains d'entre vous ne l'aimeront pas, mais c'est comme ça que le projet a commencé quand je l'ai commencé, et je ne suis pas si impatient de le changer, peut-être dans le futur ...
Actuellement, j'ai le code suivant Java, qui essaie d'appeler la procédure:
List<Object[]> resultset = hibernateTemplate
.findByNamedQuery("inrange",
person.getAddress().getLatitude(),
person.getAddress().getLongitude());
Quand je cours, je reçois l'exception Hibernate suivante:
org.springframework.orm.hibernate3.HibernateSystemException:
Named query not known: inrange;
Je pensais que cela se produit en duo le fait que je ne déclare la procédure stockée dans Mise en veille prolongée. Ma question est:
- Comment puis-je le déclarer?
- Existe-t-il un moyen spécial de le déclarer dans le fichier contextuel de l'application Spring?
Le Hibernatespatial a l'air très cool, cependant j'utilise mySQL, et il apparaît là que la plupart des fonctionnalités ne sont pas supportées sur ce DB, en particulier la fonction de distance ... – stdcall
En fait chaque DB dispose de ses propres fonctionnalités/fonctions et vous pouvez probablement contribuer à ce projet pour qu'il fonctionne aussi avec mySQL. Bonne chance –