2007年10月24日
Java | S2JDBC
via ひがやすをblog
ドキュメントに一通り目を通した。すばらしいデザインのAPI。
特に気に入ったのが「検索条件」で説明されているSimpleWhereクラスを使ってHibernateで言うところのCriteriaオブジェクトを組み立てるところ。「valueがnullの時は追加されません。」、「valuesの配列の長さが0の時は追加されません。 」という思いやりのお陰で入力値がnullじゃなければという冗長な条件節を省ける点がユニークで便利な機能だと思う。要件がピタリと合えば、相当楽チンになるはず。
ただ書いていて気付いたけど、こういう場合に僕は if (StringUtils.isNotBlank(departmentName)) と、nullだけじゃなくて空文字列やホワイトスペースだけの文字列も検索条件から外すケースが多いので、SimpleWhereクラスのようなnullチェックだけだと足りないかも知れない。
複雑なSQLが必要なときにはS2Dao使った方が良さそうに思うけど、Daoインターフェースを作るのが面倒くさい位のものであれば、ここで書かれているようにサービスクラスのメソッド内でサクッと実装しちゃうのが便利そう。
こうするとデータアクセス層を独立させたレイヤー構造は崩れちゃうけど、publicプロパティにしてもお堅いJavaの暗黙の縛りを解いて、開発効率を上げようという姿勢はいいと思う。
Seasar2では、トラブリにくくするために、いたずらに機能を増やすのではなく、トラブリやすい機能は意図的に削っています。こういった潔さもGood。
Comment
提案ありがとうございます.以下のように対応しました.次のリリースに含まれます.
https://www.seasar.org/issues/browse/CONTAINER-103
Posted by: koichik : 2007年10月25日 22:22
リリースが楽しみです。とは言っても、すぐに使うことはなさそうですが。
Posted by: otsuka : 2007年10月26日 02:32