ストアドの呼び出し方の希望。
今のS2JDBCのやり方の通り、ストアドプロシージャ/ストアドファンクションごとに
Entity(Parameter)クラスを作るというスタイルで構わないと思います。
public class FunctionParam { public String result_OUT; public String arg1_IN; public String arg2_IN_OUT; public String arg3_OUT; }
ただ、こんな変な命名規則だけでなく、アノテーションで書けると、ちょっと嬉しい。
public class FuncParam { @Out public String result; @In public String arg1; @InOut public String arg2; @Out public String arg3; }
こういう感じね。
まぁ、命名規則だろうがアノテーションだろうが構いませんが、
肝心のストアドの呼び出し方は、
jdbcManager.callFunction("hogeFunc", param); jdbcManager.callProcedure("hogeProc", param);
みたいに書ければ良いと思います。
ストアドファンクション (callFunction) の場合だったら、
一番最初のパラメータを、必ず戻り値だとみなせばOKだし、
ストアドプロシージャ (callProcedure) の場合は、
全てを引数扱いにすればOK。
それだとちょっと間違いそう、、、と言うなら
public class FunctionParam { public String result_RESULT; public String arg1_IN; public String arg2_IN_OUT; public String arg3_OUT; }
こんな風に、RESULTパラメータとして
明確にすれば良いのではないでしょうか。
こうやって定義しておけば、
jdbcManager.callFunction()を呼び出した時点で、
引数のパラメータにRESULTがなければエラーとなります。
それで上手く行きそうなのですが、どうでしょうか。