地道&気長に進めているMirageですが、少し前に@hiroisojpさんにコントリビュートしていただいたストアド対応のコードをようやくコミットしました。既存コードとの重複を排除したり、いったん不要な部分を削ったりしていたので思いのほか時間がかかってしまいました。
いまのところOracleとPostgreSQLのみ対応しています。細かい部分はどうしようか迷っているところもあるのですが、基本的な使い方はこんな感じです。
// ストアドに渡すパラメータを作成 GetCountParam param = new GetCountParam(); param.deptId = 1; ... // ストアドファンクションを呼び出して結果を取得 Long count = sqlManager.call(Long.class, "get_emp_count", param);
パラメータとして渡すDTOのプロパティにはS2JDBC同様、@In、@Out、@InOut、@ResultSetといったアノテーションをつけておきます。プロシージャ/ファンクション名で呼び出すことができるのでS2JDBCより多少使いやすいかもしれません。呼び出し方はS2DAOに近いですかね。
いまのところパラメータが1つの場合でも必ずDTOを渡す必要があります。コントリビュートしていただいたコードではパラメータの直渡しにも対応していたのですが、getResultList()やgetSingleResult()といった既存のSqlManagerのメソッドが対応していないため、いったん削除しました。将来的には対応するかもしれません。
細かい部分で迷っているところを詰めて、ドキュメントを書いたら1.0.3をリリースしようと思います。
追記:OracleとPostgreSQL以外でも動作するようです。失礼しました…。