[Seasar-user:3167] Re: S2Dao からストアドプロシージャの実行

tarumi yuutarumi
2006年 2月 8日 (水) 19:18:26 JST


tarumiです。

> 現在のところDaoにBEANアノテーションが必須となっているため
> ストアドプロシジャの実行に必要なくても、BEANアノテーションが必要です。
とりあえず、対応テーブルが存在するBEANを設定しました。
テーブル名がないと言うエラーも出なくはなりました。

> 戻り値やOUTパラメータが1つ未満なら、メタデータからデータを取得して
> 設定しなくてもすむようにしたつもりですが、
> まだpostgresqlでしか試していないので、Oracleだと動かないかもしれません。
> Oracleも無料で利用できるようになったみたいなので、
> 今夜あたり試して見ます。
Oracleだと動かないみたいですね。
BasicProcedureHandler::initTypes(132-142)で
Outパラメータの時に
SQL文をクリアしてる為のようです。
functionの形だと戻り値となるので、
Outが1番目にきますが、パラメータのOutだと、
パラメータの順になるようなので、
前のSQL文を保持しておく必要がありそうですね。

>  うーん、できればプロシジャ名以外の設定はしたくないので
> これだとSpringはあんまり参考にならないですね。
> それとも、メタデータからだけだと無理なのか。
確かに、プロシージャ名以外は設定したくないですね。
メタデータの情報で、パラメータの情報は取得できているようなので、
ここは大丈夫なようです。


出来ればの希望なのですが、
Outパラメータが複数の時は戻り値のObjectに
キー値とOUTパラメータの値のMapを返して
頂けたらものすごく嬉しかったりします^^;
ずうずうしくて申し訳ありませんm(_ _)m

以上です。




Seasar-user メーリングリストの案内