[seasar-s2dao-dev:477] Re: DBのメタデータを使わないストアド実行の仕様について
Toshihiro Nakamura
[E-MAIL ADDRESS DELETED]
2007年 8月 29日 (水) 11:44:44 JST
中村(taedium)です。
プロシージャの呼び出しですが、
旧コマンド(StaticStoredProcedureCommand)を使うか、
新コマンド(ArgumentDtoProcedureCommand)を使うかの
条件分岐をどうすべきか迷っています。
みなさんの意見を聞かせてください。
ちょっと長いですけど、お付き合いおねがします(^^;
以下、現時点の案です。
他によいものがあればぜひ。
私は案2に傾いています。
■案1(現時点の仕様)
Daoメソッドに渡すパラメータの数が1つでかつ、パラメータのDTOに
@ProcedureParametersがついていたら新コマンドとする。
それ以外は旧コマンドとする。
利点は...
・旧コマンドだけで十分な人には影響がない
・新旧の併用ができる
欠点は...
・Daoの定義だけではどちらのコマンドが使われるのかわかりづらい
・プロシージャにパラメータが存在しなくてもDaoのメソッドには
@ProcedureParametersがついているだけのDTOを渡さないといけない
(使いづらい)
・@ProcedureParametersの指定を忘れると旧コマンドが動いてしまう
■案2
@ProcedureCallを作成しこれがDaoメソッドに指定されている場合
新コマンドとする。
@Procedureはdeprecatedとする。
利点は...
・Daoの定義だけではどちらのコマンドが使われるのかわかる
・プロシージャにパラメータが存在しない場合はDaoメソッド
もパラメータなしにできる
・@ProcedureParametersをなしにできる
・新旧コマンドの位置づけが明確になる
・新旧の併用ができる
欠点は...
・旧コマンドを使っている人がduplicatedになることを嫌がる
・@ProcedureCallと@Procedureの違いがわかりにくい
■案3
diconでコマンドを切り替えられるようにする
利点は...
・旧コマンドだけで十分な人には影響がない
・まちがって意図しないコマンドが動くということがない
欠点は...
・併用できない(乗り換えづらい)
--
Toshihiro Nakamura <[E-MAIL ADDRESS DELETED]>
seasar-s2dao-dev メーリングリストの案内