Hibernateを使用してストアドプロシージャを呼び出す方法については、ネット上で多くの例がありますが、Springを使用する場合は、ピクチャが少し変わります。私は次のように記述する必要があるSQLで :HibernateとSpringでストアドプロシージャを呼び出す
私は、私が電話をかけたいのMySQLのストアドプロシージャを持っている
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());
は、私は次のHibernateの例外を取得:
org.springframework.orm.hibernate3.HibernateSystemException:
Named query not known: inrange;
が、私はこれは私が休止状態にストアドプロシージャを宣言しなかったという事実デュオが起こっていることを考え出し。 私の質問は:
- どのように宣言しますか?
- Springのアプリケーションコンテキストファイルでそれを宣言する特別な方法はありますか?
Hibernatepatialは非常にクールに見えますが、私はmySQLを使用していますその機能のほとんどは、そのDB、特に距離関数ではサポートされていません... – stdcall
実際には、各DBは独自の機能を提供しています。がんばろう –